AnyLogic 8.8.0 がリリースされ、ダウンロードできるようになりました。
Java 11 以降のバージョンに移行する理由。
AnyLogic 8.8.0 では、API (「言語レベル」) を Java 8 から Java 11 に切り替えました。以前のソフトウェアリリースの一部で、AnyLogic と Java 11 ランタイム環境を既に使用し始めています。
ただし、これらの AnyLogic バージョンで構築されたモデルは、「Java 8 方式」でコンパイルされました。これにより、モデルを Java 8 環境 (たとえば、2.3.0 より前のバージョンの AnyLogic プライベートクラウド) で実行できます。
さらに、AnyLogic 8.8.0 リリースには、マテリアルハンドリング、プロセスモデリング、およびレールライブラリの機能強化が含まれています — 完全なリリース ノートのリストをご参照ください →
このリリースでの Java 関連の変更は、開発者や AnyLogic でコードを扱う人にとって大変役立ちます。さらに詳しく見てみましょう。
言語機能
Java 11 では、Java 10 で最初に登場した varキーワードを使用できる言語機能が導入されました。この変更により、コードが単純になります:
var list = List.of("a", "b");
旧版では
List<String> list = List.of("a", "b");
開発者向け機能
コレクションの簡単な作成
Set.of("a", "b")
旧版では
new HashSet<>(Arrays.asList("a", "b"))
コレクションを配列に変換する
これにより、コレクションから適切な型の配列を簡単に作成できます:
list.toArray(String[]::new)
旧版では
list.toArray(new String[list.size()])
新しい文字列メソッド
これらのメソッドにより、文字列オブジェクトの操作に関連するボイラープレートコードの量が減り、ライブラリをインポートする必要がなくなります。メソッドには次のものがあります:
isBlank()
— 空文字列と空白のみの文字列をチェックします。
lines()
— ストリーム API を使用して、テキスト行の反復を許可します。次に例を示します。
var max = text.lines()
.mapToDouble(Double::parseDouble)
.max();
ファイルからの文字列
ファイルからの文字列の読み書きが簡単になりました:
var filePath = Path.of("my_file.txt");
Files.writeString(filePath, "Some text");
var textFromFile = Files.readString(filePath);
新しい高度な機能
経験豊富な開発者は、Optional および Stream クラスの便利な API を利用できるようになりました。
Optional.isEmpty(), Optional.or(alternative),
Optional.stream(), Stream.takeWhile(), Stream.iterate()
当社のウェブサイトから AnyLogic 8.8.0 をダウンロードするか、既存ソフトウェア内から更新できます。