欢迎访问昆山宝鼎软件有限公司网站! 设为首页 | 网站地图 | XML | RSS订阅 | 宝鼎邮箱 | 宝鼎售后问题提交 | 后台管理


新闻资讯

MENU

软件开发知识
原文出处: 局长

自从上个月进入“减速(ramp-down)”阶段以来,劳务派遣管理系统,JDK 11 的特性已经处于冻结状态。这些重大的变革已被列为 JEP(JDK Enhancement Proposal 特性加强提议)。另外,JDK 11 中也有许多除 JEP 之外的变革,但官方尚未总结。因此,本文将列出我所知道的 JDK 11 中的 API 改观。

String

lines()

字符串实例要领,利用专门的 Spliterator 来懒惰地提供源字符串中的行

jshell> "test\nhoge\n".lines().map(String::toUpperCase).toArray()
$11 ==> Object[2] { "TEST", "HOGE" }

repeat(int)

凭据参数 int 提供的次数来反复字符串的运行次数

jshell> "test".repeat(3)
$7 ==> "testtesttest"

isBlank()

验证当前字符串是否为空,可能是否只包罗空缺字符(空缺字符由 Character.isWhiteSpace(int) 验证)

jshell> var halfSpace = "\u0020"
halfSpace ==> " "

jshell> halfSpace.isBlank()
$11 ==> true

jshell> var fullSpace = "\u3000"
fullSpace ==> " "

jshell> fullSpace.isBlank()
$13 ==> true

strip()/stripLeading()/stripTrailing()

这三个要领的浸染别离是去掉字符串头和尾的空缺符、字符串头的空缺符、字符串尾的空缺符,根基与 trim()/trimLeft()/trimRight() 要领沟通,不外它们的空缺字符由 Character.isWhiteSpace(int) 验证

jshell> var aaa = fullSpace + "aaa" + fullSpace
aaa ==> " aaa "

jshell> aaa.strip()
$14 ==> "aaa"

jshell> aaa.trim()
$15 ==> " aaa "

CharSequence

compare(CharSequence, CharSequence)

按字典顺序举办排序

它被 CharSequence/StringBuffer/StringBuilder 中的 compareTo() 利用。因此,这三个类都实现了 Comparable。

Character

toString(int)

JDK 11 使这个进程变得越发利便

JDK10.0.1

jshell> Character.toString(65)
|  Error:
|  incompatible types: possible lossy conversion from int to char
|  Character.toString(65)
|

JDK11ea14

jshell> Character.toString(65)
$9 ==> "A"

Path

of(String, String…)

此前我们需要利用 Paths.get()。此刻,我们像其他类一样利用 of()。

Files

writeString(Path, CharSequence)

我们可以利用该要领来生存一个 String 字符串。

jshell> Files.writeString(Path.of("test.txt"), "Hello!!!")
$3 ==> test.txt

readString(Path)

我们可以利用该要领来读取一个 String 字符串。

jshell> Files.readString(Path.of("test.txt"))
$4 ==> "Hello!!!"

Reader

nullReader()

利用该要领,昆山软件公司,昆山软件开发,我们可以获得一个不执行任何操纵的 Reader。

Writer

nullWriter()

利用该要领,我们可以获得一个不执行任何操纵的 Writer。

InputStream

nullInputStream()

利用该要领,我们可以获得一个不执行任何操纵的 InputStream。

OutputStream

nullOutputStream()

利用该要领,我们可以获得一个不执行任何操纵的 OutputStream。

Predicate

not(Predicate)

此前在需要反转条件的处所,我们选择不利用要领引用。此刻相反,我们可以利用要领引用。

jshell> Stream.of("aa", "", "bb").filter(Predicate.not(String::isEmpty)).toArray()
$23 ==> Object[2] { "aa", "bb" }

Collection

toArray(IntFunction)

此前,我们需要利用像 list.toArray(new String

) 这样的无气势气魄标志(non-stylish notation)来从一个荟萃建设一个范例化数组。此刻,我们可以以气势气魄标志(stylish notation)的方法举办编写。

jshell> List.of("aa","bb").toArray(String[]::new)
$1 ==> String[2] { "aa", "bb" }

Optional/OptionalInt/OptionalLong/OptionalDouble

isEmpty()

isPresent() 要领此前已经存在,此刻我们利用 isEmpty() 要领。

jshell> Optional.ofNullable(null).isEmpty()
$5 ==> true

TimeUnit

convert(Duration)

该要领已经添加到 java.util.concurrent.TimeUnit 中。

Pattern

asMatchPredicate()

到今朝为止,只有 asPredicate() 要领,但此刻我们还拥有 asMatchPredicate() 要领。

jshell> var pred = Pattern.compile("aaa").asPredicate()
pred ==> java.util.regex.Pattern$Lambda$25/0x00000008000b5040@2f686d1f

jshell> pred.test("aaa")
$6 ==> true

jshell> pred.test("aaab")
$7 ==> true

jshell> var matPred = Pattern.compile("aaa").asMatchPredicate()
matP ==> java.util.regex.Pattern$Lambda$24/0x00000008000b6440@402a079c

jshell> matPred.test("aaa")
$9 ==> true

jshell> matPred.test("aaab")
$10 ==> false

ListSelectionModel

已添加 getSelectedIndices() / getSelectedCount() 要领

Thread

destroy()/stop(Throwable)

移除 destroy() 要领,保存 stop() 要领。

Policy

已移除 javax.security.auth.Policy。

ArrayIndexOutOfBoundsException

抛出的异常信息已修改:

JDK10.0.1

jshell> new int[]{}[0]
|  java.lang.ArrayIndexOutOfBoundsException thrown: 0
|        at (#8:1)

JDK11ea14

jshell> new int[]{}[0]
|  Exception java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
|        at (#4:1)

IndexOutOfBoundsException

在本次改观中,已在异常信息中移除 hyphens。