hhh*_*hhh 3 java compiler-construction error-handling variable-assignment
这个问题让我陷入了巨大的try-catch循环.我想要更小.那么如何在循环中访问赋值?
$ javac TestInit2.java
TestInit2.java:13: variable unknown might not have been initialized
System.out.println(unknown);
^
1 error
Run Code Online (Sandbox Code Playgroud)
码
import java.util.*;
import java.io.*;
public class TestInit2 {
public static void main(String[] args){
String unknown;
try{
unknown="cannot see me, why?";
}catch(Exception e){
e.printStackTrace();
}
System.out.println(unknown);
}
}
Run Code Online (Sandbox Code Playgroud)
您需要为其分配一个初始值unknown(在这种情况下,我已经使用过null但可以随意分配对您的应用程序有意义的任何值):
import java.util.*;
import java.io.*;
public class TestInit2 {
public static void main(String[] args){
String unknown = null;
try{
unknown="cannot see me, why?";
}catch(Exception e){
e.printStackTrace();
}
System.out.println(unknown);
}
}
Run Code Online (Sandbox Code Playgroud)
由于您分配的内部发生try的编译器无法验证的方式,unknown将永远被分配一个值,所以它是可能的 ,你可以使用这个变量没有分配的值.