在Java 19中,我试图在instanceof语句中使用assert模式匹配。我希望匹配的类型在语句之后可用,但是Java编译器不识别新变量。我们断言obj是一个String,并通过instanceof模式匹配将字符串绑定到新变量str。我希望str在下一行中是已知的和可用的。但是,编译器不知道符号str。(); // javac: cannot find symbol var
我想知道java编译器是如何工作的。它是否使用instanceof检查两个引用在编译时是否属于同一类型?例如: Super superRef = new Sub();Sub Sub subRef = (Sub)superRef;据说在编译时编译时会检查赋值两侧的两个类型是否匹配。我想知道它是如何在编译器中实现的。