mike-neckのブログ

Java or Groovy or Swift or Golang

Jigsaw でサービスプロバイダーを定義した場合には、 ServiceLoader は従来の引数なしコンストラクターに加えて provider という名前の static ファクトリーメソッドでオブジェクトを生成できる

GraalVM の native-image はモジュールには未対応ということで、モジュールによるアプリケーションのネイティブ化には一旦諦めましたが、モジュールの仕組みがまだよくわかってないので、もう少し勉強を続けることにした日本で 1,000,000 番目に Java のモジュールシステムに詳しいものです。

今回は Java9 で追加されていた ServiceLoader のファクトリーメソッドによるオブジェクト生成について紹介します。


時間のない人のための 1 行まとめ

  • Java9 のモジュールシステムによって、 ServiceLoader は生成するオブジェクトを従来の引数なしコンストラクターだけでなく、 provide ... with ... ディレクティブに指定されたクラスの providers という static ファクトリーメソッドによって生成できるようになっていた

で、いつもどおりですが、詳しくは ServiceLoaderjavadoc を読むのがおすすめです。

続きを読む

Java のモジュールと ServiceLoader その2 マルチプロジェクトで実験

GraalVM の native-image で javac のネイティブ化に失敗したことの原因が Java のモジュールシステムの理解不足にあることからモジュールシステムを一から勉強し直している、日本で 1,000,000 番目に Java のモジュールシステムに詳しいものです。

今回は自分でモジュールを書いて ServiceLoader で実装クラスの名前を知らなくてもインスタンスを取得するという実験をやっていきたいと思います。


例によって時間のない人のための 1 行まとめ

続きを読む

Java のモジュールと ServiceLoader

GraalVM の native-image で、 javac のネイティブイメージを作成した際に、 JavacTool(JavaCompiler の実装クラス) というコアとなるクラスがネイティブ化されていませんでした。いろいろと振り返ってみたところ、 Java のモジュールシステムについてまったくといっていいほど理解が足りていないという結論にいたり、勉強がてら少しずつ実験してみることにしました。


時間がない方のための 1 行まとめ

  • ServiceLoader の javadoc 読んでください
続きを読む

2020年に買ったもの

タイトルにある通り買ったものでわりとよく使っている(消費している)もの。

ちなみに家が狭いので 2020 年に買ったものはほとんどが 消費するものか kindle の書籍だった。

続きを読む