VBのOptional キーワードで引数の省略ができるらしい、と知って頭に浮かんだのが以下のコード。
public void hoge() {
hoge(3);
}
public void hoge(int i) {
hoge(i, 123.4d);
}
public void hoge(int i, double d) {
hoge(i, d, "デフォルト値");
}
public void hoge(int i, double d, String str) {
// ...
}
オーバーロードを初期値を加えつつ連鎖させる構造。
コンストラクタのオーバーロードなどでもよく見かけます。
そして、各メソッド(もしくはコンストラクタ)のドキュメント部分で、
初期値はXXになっているという情報が記載されることになりますね。
もしもJavaにOptionalがあったとすると
上記のサンプルは以下のような表現になるのではないでしょうか。
/**
* サンプルメソッド
* @param i intのパラメータ
* @optional i 初期値は3をとる
* @param d doubleのパラメータ
* @optional d 初期値は123.4をとる
* @param str 文字列のパラメータ
* @optional str 初期値は"デフォルト値"をとる
*/
public void hoge(
optional
int i,
optional
double d,
optional
String str) {
// ...
}
コンパイラによってオーバーロードの連鎖が自動で生成できるのであれば便利でしょうね。
※ optionalキーワードおよび@optionalのドックタグはJava6.0時点で実在しない架空のものです。
投稿日時 : 2007年10月3日 14:56