Получение типа класса из строки

У меня есть String, который имеет имя класса, говорящего "Ex" (no .class extension). Я хочу назначить его переменной Class, например:

Class cls = (string).class

Как я могу это сделать?

Ответ 1

Class<?> cls = Class.forName(className);

Но ваш className должен быть полностью квалифицированным, т.е. com.mycompany.MyClass

Ответ 2

String clsName = "Ex";  // use fully qualified name
Class cls = Class.forName(clsName);
Object clsInstance = (Object) cls.newInstance();

Подробнее читайте в разделе "Обучающий курс Java" в разделе "Отражение" http://java.sun.com/docs/books/tutorial/reflect/TOC.html.

Ответ 3

Вы можете использовать метод forName Class:

                Class cls = Class.forName(clsName);
                Object obj = cls.newInstance();

Ответ 4

eeh.. Class.forName(String classname)?

Ответ 5

Вы можете получить ссылку класса любого класса во время выполнения через концепцию отражения Java.

Проверьте код ниже. Объяснение приведено ниже Вот один пример, который использует возвращенный класс для создания экземпляра AClass:

  package com.xyzws;class AClass {
      public AClass() {
        System.out.println("AClass Constructor"); 
     }  
    static {   
      System.out.println("static block in AClass");  
     }
    }
    public class Program {   
    public static void main(String[] args) {
        try {       
    System.out.println("The first time calls forName:");   
       **Class c   = Class.forName("com.xyzws.AClass");      
     AClass a = (AClass)c.newInstance();    
      System.out.println("The second time calls forName:");  
        Class c1 = Class.forName("com.xyzws.AClass");** 
       } catch (ClassNotFoundException e) { 
               ...    } catch (InstantiationException e) {  
              ...    } catch (IllegalAccessException e) { 
               ...    }     
         }
    }


    The output is
    The first time calls forName:
    static block in AClass
    AClass Constructor
    The second time calls forName:
      //Calss has been loaded so there is not "static block in AClass" printing outThe second 

Экзаменация ниже

Класс .ForName вызывается для получения объекта класса

Используя объект класса, мы создаем новый экземпляр класса.

Любые сомнения по поводу этого дайте мне знать

Ответ 6

Не уверен, что вы просите, но... Class.forname, может быть?