前回<>次回
登場人物
- NRT
猪突猛進なプログラマー
考える前に体力勝負でプログラミングするタイプ。
たまに鋭い洞察力を見せるため、
周囲からは落ち着いてさえいれば…と言われている。
- SSK
冷静沈着なプログラマー
20:80の法則に習い、実は仕事の一部分を学習に当てている。
他の人はそれに気がついていない。
Java7についても以前からチェックはしていた。
- SKR
紅一点なプログラマー
暗算は早いけど、プログラミングはそこそこ。
※登場人物は忍者ではありません。架空のプログラマーです。
新機能:Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods
新機能:Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods
~~~ 社内 - 会議室 ~~~
SSK「どうして…こうなった…」
SKR「仕方ないわね、本当にJava 7を使うことになっちゃったんだし。」
NRT「へへっ!腕が鳴るってばよ!」
SSK「とりあえず、構文のみに絞るからな。
クラスの変更や追加は流すくらいにしかやらない。
せっかくだし新しいJavadocにでも慣れればいい。」
SKR「新しいJavadoc?Java 6とどう違うの?」
SSK「ハッキリ言って別物に見えるくらい違う。
…そんなことよりも、今回の本題を始めるぞ。」
NRT「よっしゃー!どんとこい!」
SSK「今回は強化された警告について説明する。
とりあえず、この2つのソースを見てくれ。」
*ひとつめ*
List fooList = new ArrayList<number>(); List<string> barList = fooList;
*ふたつめ*
public static <t> void foo(List<t> list, T... elements) { // 何かの処理 } public static void bar(List<string>... l) { // 何かの処理 }
SSK「Java7では、こいつらは警告扱いになる。」
NRT「ど、どういうことだってばよ!?」
SKR「ひとつめは分かるわ。…というより、今まで警告が無かったの?」
SSK「そうらしいな。
ひとつめは総称型が違うものへの代入、
ふたつめは…可変長引数の使い方だな。」
NRT「あ!俺もひとつめは分かったってばよ!
でもふたつめがぜんぜんわかんねぇぇ…」
SKR「もしかして、可変長引数にListを使っているのがいけないのかしら?」
SSK「そう思っていてだいだい間違いはないと思う。
具体例が出せなくて悪いが、
この実装を避けるように組んでくれればそれでいい。」
NRT「なら簡単だってばよ!」
SSK「おまえにこんな処理が必要な箇所は任せないから安心しろ。」
NRT「な、なにお〜!」
前回<>次回
0 件のコメント:
コメントを投稿