我正在研究java中的模式变量。在阅读JLS时,它提到了有关何时引入模式变量的几个条件。它提到——
该分析依赖于技术术语“introduced by”,其形式如下:
- 当 true 时,模式变量由表达式引入
- 当 false 时,模式变量由表达式引入
- 模式变量由语句引入
在 6.3.1 中提到了表达式中模式变量的范围,其中指出何时为&&、||、!、?:等引入模式变量。
但我觉得解释很混乱,谁能详细说明一下&&,,||!
模式变量的示例 -
Object o = "a";
if(o instanceof String s) {
System.out.println(s);
}
Run Code Online (Sandbox Code Playgroud)
我困惑的地方——
class foo {
String s, n, p, m;
void method() {
Object o = "s";
if (!(o instanceof Integer s) && o instanceof Integer n) {
System.out.println(s + " " …Run Code Online (Sandbox Code Playgroud)