文章目录
- 多行文本
- 模式变量
多行文本
在JAVA13中,终于是支持多行文本字面量了。而且最关键的是为了源代码更加美观,还自动去掉了每行文本前面的空格。如下面的例子:
public class MultilineStringDemo {
public static void main(String[] args) {
System.out.println("----------------");
System.out.println("""
白骨露于野
千里无鸡鸣
生民百遗一
念之断人肠""");
System.out.println("----------------");
}
}
因为自动去掉了前面的对齐空格,所以打印出来是这样的:
----------------
白骨露于野
千里无鸡鸣
生民百遗一
念之断人肠
----------------
IDEA开发工具则会用一根绿色线条标示:
模式变量
说起java14的模式变量,其实是简化了类型转换的语法。说白了就是在instanceof后面另外取一个变量名,在instanceof块里就不需要类型转换了,以下就是简单的写法:
public class InstanceDemo {
public static void main(String[] args) {
Object s= "Hello, world";
if (s instanceof String x) {
System.out.println(x.substring(0,5));
}
}
}
在上面的例子里,用x代表类型匹配时的变量,这个时候x就是String类型的了。而这种语法kotlin早就支持了啊。上面的代码,如果用kotlin来写,就是这样:
object InstanceDemo {
@JvmStatic
fun main(args: Array<String>) {
val s: Any = "Hello, world"
if (s is String) {
println(s.substring(0, 5))
}
}
}