我有一个对象,其功能我想在另一个类中调用,例如
class smo {
int spoon = 10;
smo() {
}
int get_spoon() {
return spoon;
}
}
class boat {
boat() {
}
print_smo(Object test) {
test.get_spoon();
}
}
它告诉我函数get.spoon()不存在。错误是有道理的,因为没有创建对象,无法调用该函数,但是当它运行并且我已经将类型为smo的适当对象传递给它时它将存在。
答案 0 :(得分:4)
由于Java具有静态语法检查,因此在运行程序之前需要知道对象的正确类型。由于它没有任何类型的type inference,因此程序员有义务在源代码中声明它们。
这意味着要在smo
对象上实际调用get_spoon()
的方法smo
,您必须声明它将属于该类型,而不仅仅是{{1} (Object
中可能的最不具体的类型):
Java
这样可以..并且可以让你拨打void print_smo(smo test)
{
test.get_spoon();
}
。
两个旁注:
oneBoot.print_smo(new smo())
ClassName