这是对这个问题的跟进:Create new class from a Variable in Java
我想加载一个基于有效字符串变量的类,但我无法调用它的任何方法。
我有多个类都实现了相同的接口(interface),例如
class Foo implements Bar {
private String username = null;
public String getUsername() {
return this.username;
}
}
现在我想在不知道它是哪个类的情况下实例化该类,然后对其调用 getUsername()
。
String a = "Foo";
Class<?> c = Class.forName(a);
Object object = c.newInstance();
System.out.println(object.getUsername());
这导致
Error:(74, 15) java: cannot find symbol
symbol: method getUser()
location: variable object of type java.lang.Object
如果我把它投给类
Foo foo = (Foo) object;
它可以工作,但我不能这样做,因为我不知道类(class)的名字。
有没有办法做到这一点,或者这完全是一种虚假的尝试?
最佳答案
您应该将其转换为您的界面:Bar object = (Bar) c.newInstance()
关于java - 从变量创建和使用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37300830/