java - Java中的动态转换

标签 java dynamic

我如何概括以下代码:

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/

相关文章:

apache-flex - 使用 ViewStack 的 Flex 动态选项卡

java - Android 应用程序在从菜单项调用方法时崩溃

c# - 如何最好地解析任何常量 Lua 表而不将其加载到 Lua VM 中?

java - 如何处理参数中的空格?

java.lang.NoSuchMethodError : javax. servlet.http.HttpServletRequest.isAsyncStarted() 同时使用 Mockito 和 Junit

java - 为新注入(inject)的类设置类路径

java - 将记录从数组插入到 Sqlite 数据库 (Android)

java - 如何通过单击 fragment 内的线性布局从 fragment 类开始新 Activity ?下面是我的代码,但这不起作用

C#获取动态创建控件的值

java - 动态调整窗口大小 swt java