2012-01-13 3 views
1

Как объявить объект типа переменной? Я знаю, что мне нужно использовать дженерики, я написал этот код, но я не уверен, имеет ли смысл, что я хочу делать. Я хочу объявить объект переменной типа и передать либо int, либо строку в качестве параметра для конструктора объекта. Вот код, который я написал:Как объявить объект переменной типа

CityOp(String CityT, Class<?>[] par) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException{ 
    Class<?> co = Class.forName(CityT); 
    Op.getDeclaredConstructor(par); 
} 

ли смысл кода делают?

+0

Ну, вы не должны использовать город cityT, но трудно помочь, когда мы не знаем, что на самом деле это то, что вы пытаетесь сделать. – Andy

+0

Вы имеете в виду что-то вроде var в C# или javascript? – tehdoommarine

+1

Если вы хотите иметь возможность передавать только строку или int, почему бы не просто создать два конструктора: «CityOp (String s, String t)» и «CityOp (String s, int i)»? Если вы создаете общий класс, тогда он должен иметь возможность принимать что угодно, а не только строку или int. – Yuushi

ответ

1

Вопрос казался немного неясным для меня. Если вы хотите, чтобы пройти в либо String или int для первого параметра, а второй параметр должен соответствовать типу первого, то вы можете использовать общий класс для достижения этой цели, а именно:

public class CityOp<T> { 
    CityOp(T cityT, T[] par) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException{ 
     // Constructor body here 
    } 
}