我之前曾问过一个关于在Java中用子类实现类的问题,我发现了一种不同的方法。(对我不同!) 网址:here
public void paintComponent(Graphics g){
这条线让我感到困惑,因为一个类作为参数传递。好吧,在我问到这里之前,我想过试一试并理解。这是我的代码:
public class parameterObject{
String name;
int age;
public parameterObject(){}
public parameterObject(String inputName,int inputAge){
name = inputName;
age = inputAge;
}
public void testObject(){
System.out.println(name);
System.out.println(age);
}
}
在下一节课中,我使用一种方法将parameterObject
作为参数传递(在bjueJ环境中)
public void testFunction(parameterObject pO, int a){
pO.testObject();
}
当我调用方法时,testFunction(...)
它询问了参数值,我输入了"arpan",19 and 20
。
错误:预期..
然后我尝试使用null
作为objectParameter,然后JVM抛出了nullPointException
错误。
应该发生什么,我理解中缺少什么?请帮忙。
答案 0 :(得分:0)
如果我明白你做了什么,我想你确实喜欢这样:
X.testFunction("arpan", 19, 20);
这是不对的,你必须这样做:
X.testFunction(new parameterObject("arpan", 19), 20);
答案 1 :(得分:0)
如果我理解正确,testFunction
需要两个参数:p0
类型的parameterObject
,然后是类型a
的{{1}}。
您是否按此方式调用了这个方法:int
?
这个电话不会匹配方法签名"。这意味着您传递的值的类型与方法所期望的值不匹配。
testFunction("arpan", 19, 20)
是一个字符串,"arpan"
是两个 int。
你可以这样做:
19, 20