基于Java 11的AnyLogic新版本发布

AnyLogic 8.8.0已发布,欢迎 下载

问题不在于是否应该迁移到Java 11或更高版本,而在于何时迁移。
Microsoft.

所以,是时候了!在AnyLogic 8.8.0中,我们将API(“语言级别”)从Java 8切换到Java 11。在之前的一些版本中,我们已经开始使用带有Java 11运行环境的AnyLogic。

然而,在这些AnyLogic版本中构建的模型是基于“Java 8的方式”编译的。因此,您可以在Java 8环境中运行模型,例如,在低于2.3.0版本的AnyLogic私有云中。

此外,AnyLogic 8.8.0版本还对物料搬运库、流程建模库和轨道库进行了增强 — 请参阅版本信息中的完整列表→

这一版本中与Java相关的更新,对于开发人员或使用代码建模的人员非常有帮助。下面我们来详细看一下。

语言特性

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

新的字符串方法

这些方法减少了处理字符串对象时所用样板代码的数量,并且不必导入库。方法包括:

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);
    

新的高级功能

有经验的开发人员可以从Optional和Stream类API新增方法中有所获益:


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


从我们的网站下载AnyLogic 8.8.0 或在软件内更新。

相关文章