Java - default parameter
ChrisK 21.08.2005 - 20:46 701 8
ChrisK
dun dun dunnn
|
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: void initialize(bool debug = false)
wenn nun initialize ohne Parameter aufgerufen wird wird automatisch false eingesetzt. tia, chris
|
gue
Addicted
|
Nein, das musst du lösen indem du die Methode überladest: 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.
Bearbeitet von gue am 21.08.2005, 22:38
|
ChrisK
dun dun dunnn
|
danke werd ich mir mal ansehen.
lg
|
watchout
Legendundead
|
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
ModeratorHoffnungsloser Optimist
|
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=315Ich 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: void setDebug(bool b)
void initialize()
Damit wird beim Aufruf offensichtlich, was das "true" bedeutet.
|
ChrisK
dun dun dunnn
|
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
Legendundead
|
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. ? int a (int normal)
{
return a(normal,"default");
}
int a (int normal, String bla)
{
...
}
klar?
|
ChrisK
dun dun dunnn
|
ja das is schon klar danke. die frage war nur, ob es eventuell ähnlich wie in C++ geht... lg, chris
|
that
ModeratorHoffnungsloser Optimist
|
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.
|