Kengo's blog

Technical articles about original projects, JVM, Static Analysis and JavaScript.

jitescript reading

 Reading OSS gives you new experience and discovery. It is just like exploring a library you don't know well. I explored the jitescript today, so I note how to explore and my impressions about them.
 OSSを読むということは新たな経験と発見を見出すことであり、よく知らない図書館を散策することに似ているかもしれません。今日はjitescriptを読みましたので、ビルド方法と感想をまとめておきます。

what is the jitescript?

 The jitescript is a Java API for Bytecode. I will not use this because I can use the ObjectWeb ASM directly, but its interface and static methods are interesting.
 jitescriptはJVMバイトコードを作るためのJavaAPIです。私はObjectWeb ASMを使えるのできっと使わないと思いますが、インタフェースやstaticメソッド群が大変興味深かったです。

creating Eclipse project to read

$ git clone https://github.com/qmx/jitescript.git
$ cd jitescript
$ mvn eclipse:eclipse -DdownloadSources -DdownloadJavadocs

how to shorten our Java codes

 What surprised me is the 'the pre-constructor style'. Can you explain '{{ ... }}' in this code?
 最も驚いたのは「プレコンストラクタスタイル」と呼ばれているコードの書き方です。次のコードが使っている'{{ ... }}'を説明できますか?

JiteClass jiteClass = new JiteClass(className, superClass, new String[]{}) {{
  defineDefaultConstructor();
}};

jitescript/src/test/java/me/qmx/jitescript/JiteClassTest.java at master · qmx/jitescript · GitHub

 This code uses instance initializer which runs between field initialization and constructor.
 これはフィールド初期化とコンストラクタの間に実行されるinstance initializerを利用した書き方です。

 I feel it's overdone a little, but very interesting. How to shorten Java codes is eternal theme for us.
 ちょっとやり過ぎな感じもしますが、なるほどこんな書き方もできるんだと勉強になりました。Javaコードの短縮は我々Java使いにとって永遠の課題ですよね。