Java getClass()返回null,但Foo.class正在工作
使用以下命令时,我会得到一个Java getClass()返回null,但Foo.class正在工作,java,Java,使用以下命令时,我会得到一个NullPointerException: Class clazz = Foo.class; String path = new File(clazz.getClass().getProtectionDomain().getCodeSource().getLocation().toURI().getPath()) + ""; 但是,当我使用以下选项时,它会起作用: String path = new File(Foo.class.getProtectionDomai
NullPointerException
:
Class clazz = Foo.class;
String path = new File(clazz.getClass().getProtectionDomain().getCodeSource().getLocation().toURI().getPath()) + "";
但是,当我使用以下选项时,它会起作用:
String path = new File(Foo.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()) + "";
有没有办法绕过
NullPointerException
?您应该在类的实例上调用getClass()
MyClass myClassInstance = new MyClass();
Class clazz = myClassInstance.getClass();
您试图在类对象上调用它您应该在类的实例上调用
getClass()
MyClass myClassInstance = new MyClass();
Class clazz = myClassInstance.getClass();
您正试图在类对象上调用它您不必在clazz上调用getClass,否则将得到class.class而不是Foo.class 因此,它应该是:
Class clazz = Foo.class;
String path = new File(clazz.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()) + "";
您不必在clazz上调用getClass,否则将得到Class.Class而不是Foo.Class 因此,它应该是:
Class clazz = Foo.class;
String path = new File(clazz.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()) + "";
这取决于类的加载方式,例如,如果类是从
有关更完整的答案,请参阅。这取决于类的加载方式,例如,如果类是从中加载的
有关更完整的答案,请参阅。为什么在
Class
实例上调用getClass
?你真的想要java的类的java类吗?Foo.class
已经是类了。不要对它调用getClass()
!为什么在Class
实例上调用getClass
?你真的想要java的类的java类吗?Foo.class
已经是类了。不要对它调用getClass()
!这仍然返回NullPointerException
@tank-您必须检查该链中的哪个方法返回null
。这仍然返回NullPointerException
@tank-您必须检查该链中的哪个方法返回null
。