【问题标题】:Return dynamic class from method从方法返回动态类
【发布时间】:2015-06-09 10:19:45
【问题描述】:

我想知道如何从采用动态字符串值的方法返回 Class 对象。我不知道我的做法是否正确

        public Class getDynClass(String className) { 
              try {
                 Class dynClass = Class.forName(className);
                 return dynClass;
              } catch (ClassNotFoundException ex) {
                 // error
                 return null;
              }
        }

【问题讨论】:

  • 你的代码有问题吗?
  • 没有。我只是想知道这是否可行。我还没有运行它,因为这需要一些时间来构建和部署。所以我只想知道这样的事情是否可行。
  • 请测试一次,如果有任何问题,请发布确切的问题。
  • 好的。谢谢。我会试一试
  • 好的。它炒锅。如何向这个动态类添加 getter 和 setter?

标签: java class methods


【解决方案1】:

您可以通过以下代码返回该类的实例:

public static void main(String[] args) {
    Object object = getDynClass("org.xml.sax.helpers.DefaultHandler");
    System.err.println(object);
}

public static Object getDynClass(String className) {
    try {
        Class dynClass = Class.forName(className);
        return dynClass.newInstance();
    } catch (IllegalAccessException | InstantiationException | ClassNotFoundException ex) {
        Logger.getLogger(ReadXMLFile.class.getName()).log(Level.SEVERE, null, ex);
    }
    return null;
}

【讨论】:

    【解决方案2】:

    你期待这个答案吗?根据给定的字符串参数动态返回类实例。

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            //long i = java.util.UUID.randomUUID().getMostSignificantBits();    
            Test t = new Test();
            Class<?> obj = t.getDynClass("com.test.TestClass");
        }
         public Class<?> getDynClass(String className) { 
             try {
                Class<?> dynClass = Class.forName(className);
                return dynClass.getClass();
             } catch (ClassNotFoundException ex) {
                // error
                return null;
             }
       }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-19
      • 2021-10-19
      • 1970-01-01
      • 2013-08-19
      • 2012-01-01
      • 2018-12-08
      • 1970-01-01
      相关资源
      最近更新 更多