Java Versions and Features - HowToDoInJava
Java 各版本和特性(Java Versions and Features)
java 9 private interface methods
Method Type | Since When |
---|---|
public abstract | Java 7 |
public default | Java 8 |
public static | Java 8 |
private | Java 9 |
private static | Java 9 |
例:
import java.util.function.IntPredicate;
import java.util.stream.IntStream;
public interface CustomCalculator
{
default int addEvenNumbers(int... nums) {
return add(n -> n % 2 == 0, nums);
}
default int addOddNumbers(int... nums) {
return add(n -> n % 2 != 0, nums);
}
private int add(IntPredicate predicate, int... nums) {
return IntStream.of(nums)
.filter(predicate)
.sum();
}
}
hese private methods will improve code re-usability inside interfaces
Text blocks 文本块
JDK 15变成标准API ,之前版本中出现过,但只是预览版
Programmer's Guide to Text Blocks
JEP 378
public class Main {
public static void main(String[] args) {
String html =
"<html>\n"
+ " <body>\n"
+ " <p>Hello, world</p>\n"
+ " </body>\n"
+ "</html>\n";
String html1 =
"""
<html>
<body>
<p>Hello, world</p>
</body>
</html>
""";
System.out.println(html.equals(html1));
}
}
结果true
Significant trailing line policy
输出空格的规则
以结尾的“”“为准。在内容文本左边,则输出相应的空格;如果与最多边的文本一样的宽,则输出同样的文本。如果超过了,还是以最左边的文本输出,不会输出多余空格。“|”表示边界
例:
String html = """ <html> <body> <p>Hello, world</p> </body> </html> """;
输出
| <html> | <body> | <p>Hello, world</p> | </body> | </html>
String html = """ <html> <body> <p>Hello, world</p> </body> </html> """;
输出
|<html> | <body> | <p>Hello, world</p> | </body> |</html>