昨日は朝起きたらJava10が出てたので新しく導入された var
で遊んでた。
わーい
— Mitsuyuki Shiiba (@bufferings) 2018年3月20日
$ java --version
openjdk 10 2018-03-20
OpenJDK Runtime Environment 18.3 (build 10+46)
OpenJDK 64-Bit Server VM 18.3 (build 10+46, mixed mode)
そうか。今日はvarのために祝日なのか。
— Mitsuyuki Shiiba (@bufferings) 2018年3月21日
娘に「お父さん、朝からお仕事お疲れ様!がんばってね(๑•̀ㅁ•́๑)✧」って言われて少しの罪悪感
— Mitsuyuki Shiiba (@bufferings) 2018年3月21日
ので、遊んだことのメモ。
JShell便利
手軽に var
遊びするのに使ってみた。便利。きつねさんが「JShell便利だよー」って言ってたのを数年ごしで実感(遅
おー。JShell便利。
— Mitsuyuki Shiiba (@bufferings) 2018年3月20日
jshell> var a = "aaa"
a ==> "aaa"
jshell> a.length()
$7 ==> 3
今なら分かる。便利。(遅
— Mitsuyuki Shiiba (@bufferings) 2018年3月20日
匿名クラス遊び
んでぽちぽち遊んでたら。うらがみさんがこんな風に言ってるのを見て…
varを使う最大のメリットはこれかも。 https://t.co/QNREnwKCdv
— うらがみ⛄ (@backpaper0) 2018年3月20日
最初は全然ピンときてなくて「ふむ。なるほど?(分かってない」からの「実際に書いてみるか」からの「へー!(雰囲気)」ってなったのでした。
へー
— Mitsuyuki Shiiba (@bufferings) 2018年3月21日
jshell> var c = new Object(){int a=1;}
c ==> $1@35047d03
jshell> c.a
$44 ==> 1
jshell> Object c = new Object(){int a=1;}
c ==> 1@6f96c77
jshell> c.a
| Error:
| cannot find symbol
| symbol: variable a
| c.a
| ^-^
jshell> new Object(){int a=1;}.a
$46 ==> 1
実行するとこんな結果。匿名クラスが便利に使えそう。
name = Apple, total = 300 name = Orange, total = 500 name = Peach, total = 1200 Process finished with exit code 0
別の話題の流れだけど、僕はコレだ↓
おれたちはふんいきでジャバを書いている!
— うらがみ⛄ (@backpaper0) 2018年3月21日
Effectively Final?
みけさんがこんな風に言ってたので、
一瞬、「えっ!」ってなったけど、jshellだからできる模様 pic.twitter.com/4gxNcIb2w6
— Shinya Mochida@型 (@mike_neck) 2018年3月21日
おもしろいなーって思って、JShellで実行したらどうなるんだろう?って覚えたての /debug g
オプションで情報を見たら、こんな雰囲気だった(実際にこうなってるわけじゃなくて、出力される情報を見て「こんな風に動いてそう?」ってのを書き出しただけね):
staticフィールドになって、それを呼び出してるっぽくて面白い。
var.var
遊び
あとは、もがみさんがこんなこと言ってたので
var var = com.example.var.Var.var();
— mogami (@smogami) 2018年3月20日
これでどうや!!
var
は予約語じゃないから変数名とかには使えるよ、ってことで。おもしろいなーって思って、雰囲気で書いて遊んだ:
というわけで
おもしろかったー!
おvar ちゃんの知恵袋
— こざけ (@s_kozake) 2018年3月20日
varをバーっと使ってみるか
— yank shaving (@yy_yank) 2018年3月21日