var 変数とは
var 変数とはJava11以降で使用が可能となった、いろいろな型を代用する変数のことである。
例えば、
String str="test";
とJava10以前であれば、記載する必要があったが、Java11以降であれば、下記の書き方も出来るようになった。
var str="test";
問題点
上記のように明らかに右側の形式が明確な場合は問題ない。
ただし、他のメソッドからの戻り値の値をセットする場合などではちょっとややこしいことにもなる。
pubic static void main(){
var hogehoge=getStr();
}
pubic String getStr(){
String str="";
//doSomething
return str;
}
この時点でgetStrメソッドの戻り値ってどんな型がどうか分からない。
確かに右側のメソッドでは必ずString型で返しているが、記述的に問題はなく、コンパイルも通るわけではあるが。
JavaDocコメントの推奨
これだけだと確かにメソッドの内容を探しに行く必要がある。クラスが別だったら、別のJavaファイルを見に行かないと行けない。面倒。
そんな時のためにJavaDocコメントを書くくせをつけよう。
pubic static void main(){
var hogehoge=getStr();
}
/**
* return strの文字列
*
*/
pubic String getStr(){
String str="";
//doSomething
return str;
}
return だけでも書いてあると少なくとも文字列を返してあるのが分かる。
これだけだと実際には改修するプログマー思いではないので、ある程度改修の事も考えてJavaDocコメントは考えよう。
変数の付け方
var変数に入れることができる値のうち、ListとかMapの場合には○○Listとか○○Mapとかがつけるなどの癖付けも有効になる。
pubic static void main(){
var hogeList=new ArrayList<String>();
}
ただし、命名規則がちゃんとしている場合にはそれに準ずる必要がある。
var変数との付き合い方
varがJava11以降で使えるようになってしまったので、var変数を使うと型がよくわからなくなってしまった。ただ、解禁されてしまったのは仕方ないので、それはJavaの開発をするときに開発プログラマーとプロジェクト全体でvar変数の使用をどう考えるか、また、変数の命名規則はどうするかをちゃんと規定していくべきだと考える。
以上