从方法返回动态类

时间:2015-06-09 10:19:45

标签: java class methods

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

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

2 个答案:

答案 0 :(得分:0)

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

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;
}

答案 1 :(得分:0)

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

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;
         }
   }