Новая версия AnyLogic с Java 11

AnyLogic 8.8.0 уже доступен для скачивания.

Вопрос не в том, стоит ли переходить на Java 11 или более позднюю версию, а в том, когда.
Microsoft.

Время пришло. Мы переключили API («уровень языка») с Java 8 на Java 11 в AnyLogic 8.8.0. Предыдущие версии AnyLogic уже поддерживали среду выполнения моделей Java 11. Однако модели, созданные в этих версиях AnyLogic, были собраны на базе Java 8. Благодаря этому вы могли запускать свои модели, например, в более ранних версиях AnyLogic Private Cloud – до версии 2.3.0.

Сейчас произошел полный переход на Java 11 с обновлением языковых возможностей. Кроме того, новая версия AnyLogic 8.8.0 содержит улучшения для библиотек производственных систем, моделирования процессов и железнодорожной библиотеки. Полный список обновлений — в Справке AnyLogic →

Изменения в этом релизе, связанные с Java 11, будут полезны тем, кто активно использует код для создания моделей. Давайте рассмотрим эти обновления подробнее.

Улучшение синтаксиса

В Java 11 можно использовать ключевое слово var, которое впервые появилось в Java 10. Это изменение упрощает ваш код:


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()])
    

Новые методы в классе String

Они сокращают объем стандартного кода, используемого для работы со строковыми объектами, и избавляют вас от необходимости импортировать библиотеки. Некоторые новые методы:

isBlank() — проверяет пустые строки и строки, содержащие только пробелы;
lines() — позволяет перебирать текстовые строки с помощью Stream 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);
    

Новые продвинутые функции

Опытные разработчики теперь могут воспользоваться удобным API классов Optional и Stream:


Optional.isEmpty(), Optional.or(alternative), 
Optional.stream(), Stream.takeWhile(), Stream.iterate()
         


Обновите AnyLogic или скачайте новую версию с нашего сайта.

Похожие материалы