我有这门课:
public class SomeClass {
public void someMethod() {} throws someException
public class someException extends Exception { // Exception class
public someException(String message) {
super(message);
}
}
}
另一个类:
public class SomeOtherClass {
public static void main (String[] args) {
SomeClass obj = new SomeClass();
try {
obj.someMethod();
} catch (someException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Eclipse 提示“someException 无法解析为类型”。我尝试添加
import SomeClass.someException
然后它说“无法解析导入 SomeClass”
你当然可以将 someException 放在一个单独的文件中,而不是嵌套它,这是唯一的方法吗?
最佳答案
您应该能够通过使用类名 SomeClass.someException
限定它来使用该类。如果您更愿意导入它,则必须将您的代码放在一个包中。然后你可以这样做:
import yourpkg.SomeClass.someException;
另外,你的语法有点不对:
public void someMethod() {} throws someException
应该是
public void someMethod() throws someException {}
(但也许那是您问题中的错字。)
除非您确实需要引用封闭对象,否则您可能还需要考虑将嵌套类设置为static
:
public static class someException extends Exception {
...
}
关于java - 无法导入嵌套的自定义异常类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27434159/