Class someInterface = Class.fromName("some.package.SomeInterface");
现在如何创建实现someInterface
的新类
我需要创建一个新类,并将其传递给一个需要SomeInterface
作为参数的函数。
发布于 2009-07-04 19:53:44
创建一些假装实现动态接口的东西实际上并不太难。在实现InvocationHandler
之后,您可以使用java.lang.reflect.Proxy
来处理任何方法调用。
当然,您实际上可以使用像BCEL这样的库生成一个真正的类。
发布于 2009-07-04 20:06:25
发布于 2009-07-04 20:26:56
实际上,您必须在Class.fromName()方法中使用类名,并将其强制转换为接口类型。看看下面的示例是否有帮助。
public class Main {
public static void main(String[] args) throws Exception {
Car ferrari = (Car) Class.forName("Mercedez").newInstance();
System.out.println(ferrari.getName());
}
}
interface Car {
String getName();
}
class Mercedez implements Car {
@Override
public String getName() {
return "Mercedez";
}
}
class Ferrari implements Car {
@Override
public String getName() {
return "Ferrari";
}
}
https://stackoverflow.com/questions/1082850
复制相似问题