Java - default parameter

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/java_default_parameter_147954/page_1 - zur Vollversion wechseln!


ChrisK schrieb am 21.08.2005 um 20:46

So, nachdem ich in letzter Zeit hauptsächlich auf der C++ Schiene unterwegs bin, hab ich eine Frage an die Java Coder des Forums.

Ist es möglich in Java default Parameter zu definieren?

in C++ würde das so aussehen:

Code:
void initialize(bool debug = false)

wenn nun initialize ohne Parameter aufgerufen wird wird automatisch false eingesetzt.

tia, chris


gue schrieb am 21.08.2005 um 22:28

Nein, das musst du lösen indem du die Methode überladest:

Code:
void initialize() { initialize(false); }
void initialize(boolean debug) ...

//edit: Unsinn, seit Version 5.0 gibt's varargs. Damit habe ich aber ehrlich gesagt noch keine Erfahrungen gemacht.


ChrisK schrieb am 21.08.2005 um 23:58

danke werd ich mir mal ansehen.

lg


watchout schrieb am 22.08.2005 um 07:14

kann jeder für sich entscheiden - ich find überladen besser... vor allem weil zb.

func ( int , str )
nicht die gleiche funktion wie
func ( str , int )
aufruft

und da kann man sich dann sehr sehr viel spielen und nette sachen schaffen auf die art


that schrieb am 22.08.2005 um 07:56

Zitat von watchout
und da kann man sich dann sehr sehr viel spielen und nette sachen schaffen auf die art

Stimmt. Manche halten es auch für unnötig und gefährlich:

http://www.acmqueue.com/modules.php...age&pid=315


Ich denke, es findet sich für jedes Feature einer Programmiersprache irgendwer, der es für zu kompliziert und gefährlich hält und es daher abgeschafft sehen möchte. IMHO soll aber letztendlich der Programmierer entscheiden, ob in einem bestimmten Fall ein Feature der Programmiersprache nützlich ist oder nicht. Man kann fast jedes Feature sinnvoll nutzen oder missbrauchen, und eine Programmiersprache macht aus einem schlechten Programmierer keinen guten.

Im gegenständlichen Fall würde ich keine Varargs verwenden, das ist für andere Zwecke vorgesehen (Übergabe von ad-hoc definierten Arraykonstanten). Wenn möglich, würde ich sogar das Interface umbauen in:

Code: PHP
void setDebug(bool b)
void initialize()

Damit wird beim Aufruf offensichtlich, was das "true" bedeutet.


ChrisK schrieb am 23.08.2005 um 20:21

mir gehts dabei ja nicht um die variable Aneinanderkettung von argumenten, sondern um den aufruf einer Methode mit einem Defaultwert eines Parameters, wenn dieser nicht angegeben wird.


watchout schrieb am 24.08.2005 um 12:30

Zitat von ChrisK
mir gehts dabei ja nicht um die variable Aneinanderkettung von argumenten, sondern um den aufruf einer Methode mit einem Defaultwert eines Parameters, wenn dieser nicht angegeben wird.
?
Code: PHP
int a (int normal)
{
  return a(normal,"default");
}

int a (int normal, String bla)
{
  ...
}
klar?


ChrisK schrieb am 25.08.2005 um 18:40

ja das is schon klar :) danke.

die frage war nur, ob es eventuell ähnlich wie in C++ geht...

lg, chris


that schrieb am 25.08.2005 um 20:45

Zitat von ChrisK
ja das is schon klar :) danke.

die frage war nur, ob es eventuell ähnlich wie in C++ geht...

Die Antwort zu der Frage stand im ersten Antwortpost im ersten Wort... und ob es ein Feature in einer Programmiersprache mit einer bestimmten Syntax gibt, kann man durch Lesen der Dokumentation herausfinden.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026