2014-02-06 3 views
0

Мне нужно создать типы классов emum wih.создание констант enum со всеми типами классов?

Enum должен содержать:

Employee.class 
Boarding.class 
Address.class 
Salary.class 

Как я могу создать перечисление с выше констант?

Спасибо!

+0

enum константы имя строки, такие как 'FOOBAR', зачем вам« enum with classes »? –

+0

RC, мне нужно передать типы классов в некоторый API. Поэтому я должен хранить все эти типы классов в Enum. – user3269829

+0

Сохраните их в списке и передайте список API. –

ответ

0

Enums - это их собственный тип, они не могут быть другими типами классов. Вы хотите перечисление, которое содержит ссылку на другие классы. Может быть, что-то вроде этого.

public enum Thing { 
    EMPLOYEE(Employee.class), 
    BOARDING(Boarding.class), 
    ADDRESS(Address.class), 
    SALARY(Salary.class); 

    private final Class clazz; 
    Thing(Class clazz) { 
    this.clazz = clazz; 
    } 

    public Class getClassOfThing() { 
    return clazz; 
    } 
} 

Возможно, у вас могут появиться лучшие имена.

0
public enum Enumss { 

    EMPLOYEE("Employee.class"), 
    BOARDING("Boarding.class"), 
    ADDRESS("Address.class"), 
    SALARY("Salary.class"); 

    private String value; 

    private Enumss(String s){ 
     this.value = s; 
    } 

    public String getValue() { 
     return value; 
    } 

} 

Если вы хотите имя класса, то если вы хотите использовать ссылку на использование класса.

static Class<?> forName(String className) 
+0

Он хочет знать о классах, а не строках, которые выглядят как имена классов с добавлением «.class» ... –

+0

Использование Class.forName может получить ссылку на класс, но, честно говоря, решение для @PaulHicks выглядит лучше xD – Koitoer

Смежные вопросы