我加载使用铸造对象的
的Class.forName(klassname,假,装载机)
一类这种i之后创建使用
klass.newInstance(一个实例); 它会返回一个对象类型。我想将它转换为特定类型(即.Klassnamw实例)。我使用普通投射,但由于它在运行时没有解析而被挂起。我该如何投射它?Hellp
我加载使用铸造对象的
的Class.forName(klassname,假,装载机)
一类这种i之后创建使用
klass.newInstance(一个实例); 它会返回一个对象类型。我想将它转换为特定类型(即.Klassnamw实例)。我使用普通投射,但由于它在运行时没有解析而被挂起。我该如何投射它?Hellp
Casting通常用来给编译器提供更多信息。你在编译时没有这些信息,所以你不能把它给给编译器。
此外,铸造的重点通常是让你可以找到某些其他人不会知道的成员 - 但如果你在执行时间之前不知道这个类,你怎么知道这些成员?
在某些情况下,它会很好,但它们非常罕见。创建完实例后,你想要做什么?如果你正试图调用你在编译时知道的方法,你可以使这些方法成为接口的一部分,并将其转换为接口?
您正在使用反射,因为您不知道(或无法解析)要在编译时加载的类。
因此,您不能上课。
除非有一个接口(或父类)可以在编译时解析(并因此转换为),否则必须使用反射来执行对该对象有用的任何操作。
是的,谢谢得到它 – Steven 2010-03-31 05:40:53
这不是逻辑上不可行吗? – shinkou 2010-03-31 05:29:27