是否有任何方法可以在运行时之前不知道其类型且不使用反射的情况下实例化类?
如果我希望实例化的所有类都扩展相同的抽象类或实现相同的接口(interface),那么这是一个合理的请求。然而,因为即使它们这样做,你也不能在这些类上强制执行构造函数,所以我想不出一种方法来做到这一点。
最佳答案
没有。首先创建反射的部分原因是为了让您可以在运行时实例化一个类,而无需提前知道其类型。
您听起来像是在问如何执行类似的操作,其中 $CLASS 是运行时定义的包的名称:
eval {
require "$CLASS";
};
die $@ if $@;
$newObj = $CLASS->new();
嗯,伙计,这就是 Sun 添加反射的原因...
关于java - 实例化一个类,直到运行时才知道其类型,并且不进行反射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7176757/