2016-03-28 30 views
0

我正在使用java web框架(Vraptor),我遇到了以下问题:框架使用Reflection来实例化控制器参数,并且由于某种原因其中一个参数正在回升<java.lang.NullPointerException>getDeclaredConstructors()返回java.lang.NullPointerException

我的问题是:该框架通常工作一段时间,由于某种原因,我想实例化类型的“cachedConstructor”填充<java.lang.NullPointerException>而不是预期的。有什么可能做出这种改变?

如果框架是这样做的,我不问,我只是想知道什么可以在Java中

getClassType().getDeclaredConstructors() is return java.lang.NullPointerException (returning, not throwing) 

回答

1

最有可能getClassType做到这一点()函数返回一个空值。如果您通过代码进行调试并为值输入一些控制台输出,则会看到哪个值将返回为空值。如果需要,在使用对象之前做一些空值检查。

请参阅What is a NullPointerException, and how do I fix it?

+0

事情是,我不能做检查,因为这是框架的内部代码。 getClassType()不返回null,getDeclaredConstructors返回java.lang.NullPointerException(非null) –

+0

是的,因为类类型几乎肯定是null。或者getDeclaredConstructors()方法内部的东西返回null。但更可能的是getClassType()方法返回null。这意味着你试图在null上得到DeclaredConstructors(),这引发了NullPointerException。如果没有看到更多的代码,那么很难确定null是从哪里来的。你将这个“框架”代码传递给那些试图获得类/构造函数的代码是什么?它可能是一个类名错误,或者类路径中缺少的东西。 – ManoDestra

+0

我知道这可能会引起混淆,但getDeclaredConstructors调用并没有像我说的那样抛出一个预期,getClassType正在返回期望的类型,但getDeclaredConstructors是返回java.lang.NullPointerException(不是抛出),就像它返回expect的构造函数(或类似的东西) –

相关问题