CUBは子供の白熊

Java SE 8 実践プログラミングの練習問題を解く

第7章 Nashorn JavaScript エンジンの活用 : 問題 1 : jjs で Java のクラスを試す

問題

例えばZonedDateTimeクラスなど、試してみたい Java API を選んで

  • オブジェクトの生成
  • メソッドの呼び出し
  • 戻り値の表示

など、jjs を使った実験を行え

解答

■ オブジェクトの生成

ZonedDateTimeクラスにコンストラクタはないので、ファクトリメソッド

jjs> java.time.ZonedDateTime.parse('2007-12-03T10:15:30+01:00[Europe/Paris]')
2007-12-03T10:15:30+01:00[Europe/Paris]
jjs> now = java.time.ZonedDateTime.now()
2015-11-17T15:41:33.144+09:00[Asia/Tokyo]

メソッドの呼び出し、戻り値の表示 ZonedDateTimeクラスのメソッドは全て戻り値があるので、呼び出した結果を即表示する

jjs> now.getZone()
Asia/Tokyo
jjs> now.zone
Asia/Tokyo
jjs> now.month
NOVEMBER
jjs> now.monthValue
11
jjs> now.plusDays(-17)
2015-10-31T15:41:33.144+09:00[Asia/Tokyo]

さらに問題

jjs を使った実験は、Java でテストプログラムを書くより簡単か?

解答

Java 脳を JavaScript 脳に切り替えるのに少し時間が掛かるが、jjs を使った方が楽である

特に、getter/setter が C# のプロパティのように書けるのは癖になりそう