2013-10-07 117 views
0

我正在修改一个程序,它有Class[] paramTypes来存储输入类型。那么我的问题是我如何为数组的每个单元赋值? 我可以这样做paramTypes = new Class[]{int.class,double.class,String.class}为paramTypes分配,但是当我尝试为paramTypes[i] = int.class这样的for循环分配每个单元时,它显示NullPointerException。那么我该怎么做这个for循环呢?如何为类数组对象赋值?

这是方法:

public MethodCall(String className, 
     String methodName, 
     Class[] paramTypes, 
     Object[] params) { 
    this.className = className; 
    this.methodName = methodName; 
    this.paramTypes = paramTypes; 
    this.params = params; 
} 

这是实例:

MethodCall methodCall = new MethodCall("Foo", "bar", new Class[]{int.class,double.class},new Object[]{new Integer(10), new Double(123.0)}); 

回答

0

你必须首先初始化数组。

paramTypes = new Class[4]; // or some other number 
for(...){ 
    paramTypes[i] = int.class; 
} 
+0

我可以动态初始化数组吗?因为我不知道输入长度。 – CodTango

+0

你的意思是你有一个变量的大小?是的你可以。你为什么不试一试! – Mohayemin