【问题标题】:How to create class instance without using variable value?如何在不使用变量值的情况下创建类实例?
【发布时间】:2015-04-01 15:53:10
【问题描述】:

我是一名开发人员,最近我正在开发一个 java 应用程序。 此应用程序生成了许多报告,并且它的应用程序会定期更新,以便在应用程序中实现新的报告功能。

所以我想集成插件系统,如 Eclipse 或其他工具,我们可以根据需要在其中安装新插件。

在实现它时需要考虑一些问题 -

问。 1 - 如何在不使用变量值的情况下创建类实例?

 For example -


public class A {
  public static void main(String arg[])
     {
           int data = 0;
           String CName = "B";

          B ob1 = new B()  //valid ways
          data = ob1.addMy();  //valid ways

           CName ob2 = new CName();  // My required ways
           data = ob2.addMy(); // My required ways            
     }
}
class B
     {
      int addMy()
         {
           int a =90;
           return a;
         }
      }

实际上 .class 将动态保存在包中,所以我将类名保存在数据库中,然后我想使用这个类名字符串来创建实例(对象)来访问保存的类成员。 如果可能请给我建议

问。 2 - 如何在 Java 应用程序中实现插件功能的最佳方法。如果可能,请给我一个例子。

请帮帮我 谢谢大家。

【问题讨论】:

  • 阅读类加载和反射。例如,您可以使用 Class.forName 动态加载类
  • Eclipse 和许多动态安装模块的应用程序都使用OSGi。你所说的有点骇人听闻 - 它会起作用,但可能会导致 PerGen 泄漏,
  • 还可以考虑通过java-web-start 进行部署以进行定期更新。

标签: java swing plugins


【解决方案1】:

对于

问。 1 - 如何在不使用变量值的情况下创建类实例?

你大概可以看看这些:

Apache Commons JCI 的

  1. 重新加载类加载器
  2. FilesystemAlterationMonitor

以下链接可能有用:

  1. https://commons.apache.org/proper/commons-jci/apidocs/org/apache/commons/jci/ReloadingClassLoader.html

  2. Apache Commons JCI ReloadingClassLoader

【讨论】:

    猜你喜欢
    • 2013-06-23
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多