Xunlan_ 2022-06-03 11:55 采纳率: 57.1%
浏览 14

java如何通过实例名获取实例

java中有没有这样一个方法func(String name):

有:

class cls{
  ...
}

cls obj = new cls();

通过func("obj")获取到obj对象。
就是通过实例名获取到实例本身。

可以提供实例的类。

不希望通过map之类的方法实现。

  • 写回答

1条回答 默认 最新

  • 吕布辕门 后端领域新星创作者 2022-06-03 16:46
    关注

    创建的这个类的需要继承一个接口(Interface) ,因为获取了实例需要强制转换成某一个借口的实例才可以调用其中的方法。

    创建一个Class类的引用,调用Class类的静态方法forName(String),参数为类的绝对路径(包含包路径如:org.test.GetClass)。

        Class onwClass = Class.forName("org.test.GetClass");
    

    现在我们有了一个Class类的实例了。下面就是获取一个Object类的实例对象。

        Object o = onwClass.newInstance();
    

    现在我们已经有了一个Object对象,下一步就可以对这个Object进行强制转换了。

    假如org.test.GetClass 继承一个叫GetInterface的接口。我们就可以把这个object对象强制转换成这个接口,然后就可以调用其中的方法了。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月3日

悬赏问题

  • ¥15 STM32F103上电短路问题
  • ¥15 关于#单片机#的问题:以ATMEGA128或相近型号单片机为控制器设计直流电机调速的闭环控制系统(相关搜索:设计报告|软件设计|流程图)
  • ¥15 打开软件提示错误:failed to get wglChoosePixelFormatARB
  • ¥15 (标签-python|关键词-char)
  • ¥15 python+selenium,在新增时弹出了一个输入框
  • ¥15 苹果验机结果的api接口哪里有??单次调用1毛钱及以下。
  • ¥20 学生成绩管理系统设计
  • ¥15 来一个cc穿盾脚本开发者
  • ¥15 CST2023安装报错
  • ¥15 使用diffusionbert生成文字 结果是PAD和UNK怎么办