Java読書会RxJavaのハンズオン¶
2017年8月度のJava読書会では、課題図書の読了が午前中に予想されるため、午後にRxJavaを使ったプログラミングのハンズオン的なイベントを開催しようと思っています。
環境の準備¶
RxJavaとJava SE 8 Development Kitを用意します。
当日はインターネット接続ができない環境を想定します。
ハンズオンで作るサンプルプログラム¶
課題プログラム¶
Duke Pizza社は、最近ドローンを使ったピザの配達を始めました。
ピザの配達の品質を把握し改善するために、ドローンの位置と速度をリアルタイムに把握すること、ドローンの配達時間を記録することとなりました。
ドローンには、自己位置等の情報を無線で送信する機能があり、これを受信して、地図上に位置をプロットし、また速度を表示することとします。
配達が完了すると、配達に要した時間を算出します。
実施メモ¶
開発環境について¶
当日持参PCに入っていた開発環境は、IntelliJ IDEA(AndroidStudio含む)3人、eclipse 2人、NetBeans 1人でした。
OSは、過半数がMacOS Xでした。
eclipse におけるJavaFX¶
eclipse oxygenをインストールして素のまま(e(fx)clipse
プラグインを入れずに)Javaの空プロジェクトを作成、JavaFXを使おうとApplicationクラスを継承するコードを書く際、補完が働かない、ベタに書いたらAccess restrictionのコンパイルエラーが発生しました。
Access restriction: The type 'Application' is not API (restriction on required library 'C:\Program Files\Java\jre1.8.0_144\lib\ext\jfxrt.jar') HelloJavaFxApp.java /HelloJavaFx/src/hello line 3 Java Problem
補完は効かなくてもコンパイルだけは通したい場合、次の設定で回避は可能です。なお、メソッドの補完は効きますが、クラスの補完が効かないので、import文の自動生成ができず手で書く必要があります。
- [Window]メニュー > [Preferences] で「Preferences」画面を表示し、左側ペインの[Java] > [Compiler] > [Errors/Warnings]を選択、右側ペインで[Deprecated and restricted API] > [Forbidden references (access rules)]の右端の設定を[Error]から[Ignore]に変更。
また、eclipseから外部ビルドツール(mavenなど)を呼び出す形式ならコンパイルエラー(Access restriction)は回避可能と思われます。