【发布时间】:2015-03-19 09:42:20
【问题描述】:
我会尽量设置简单,因为它也让我感到困惑。
我有一个方法返回 Class 类型的对象,即
public Class foo(){...}
当我调用此方法时,我将结果保存在 Class 类型的变量中,即
Class obj = new foo();
foo() 可以返回许多不同的类,但它们都包含相同的方法bar()。
如何从我的obj 变量调用该方法?
我尝试了obj.bar(),但 IDE 似乎不喜欢它。我明白了
错误:(59, 34) 错误:找不到符号方法
bar()
【问题讨论】:
-
Class obj = new foo()永远不会有效,除非您谈论的Class类型与java.lang.Class不同。一个简短但完整的程序来演示这个问题会让这一切变得更加清晰。 -
你必须使用
((foof)obj).bar() -
正如 Jon Skeet 所说,
Class obj = new foo()无效。你可能想做Foo obj = foo().newInstance(),然后obj.bar()。