我如何概括以下代码:
String nameString = "myClass_t";
myClass_t myVar = (myClass_t) AnotherClass.classMethod();
AnotherClass.classMethod() 的返回类型需要从文件中获取(因此是一个 String 变量)。 myVar 的类型需要匹配该类型。
如何重写第 2 行以使其能够从 nameString 获取类型?
非常感谢您的帮助。
最佳答案
这没有多大意义。如果 myVar
的类型不是静态已知的,您将只能通过反射使用它。在这种情况下,只需将其存储为 Object
。
您是否正在尝试验证 classMethod()
是否返回了预期的类型?或者您是否试图将结果转换为特定类型,以便您可以在其上调用特定方法?换句话说,您接下来要用 myVar
做什么?调用类似 myVar.myMethod()
的方法?
下面是一个使用反射调用对象方法的示例。引用Class
文档以获得更详细的解释。
Object myVar = AnotherClass.classMethod();
/* Get the class object for "myVar" to access its members. */
Class<?> myClass = myVar.getClass();
/* Find the public, no-arg method "myMethod()". */
Method mth = myClass.getMethod("myMethod");
/* Invoke "myMethod()" on "myVar", and assign result to "r". */
Object r = mth.invoke(myVar);
关于java - Java中的动态转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4650671/