从泛型参数的构造函数中获取对象类型?
Get type of Object from constructor for generic parameters?
private LinkedList register;
public Register(Object obj){
register = new LinkedList<obj>();
}
所以基本上,我可以通过这个方法定义LinkedList应该包含的对象类型吗? (对于 Java)
也许obj.getClass?
基本上不是,泛型只是编译时的,需要在某处声明。
class Register<T> {
LinkedList<T> register;
Register(T obj) {
register = new LinkedList<T>();
}
例如,您可以使用工厂方法。
static <U> Register<U> of(U obj) {
Register<U> result = new Register<U>(obj);
return result;
}
}
Register<String> a = new Register<String>("abc");
Register<Double> b = Register.of(1.0d);
另见 Lesson: Generics。
泛型可能会造成混淆。我想你想要这个:
public class Register<T> {
private LinkedList<T> register = new LinkedList<T>();
public static <T> Register<T> create(T object) {
return new Register<T>();
}
}
private LinkedList register;
public Register(Object obj){
register = new LinkedList<obj>();
}
所以基本上,我可以通过这个方法定义LinkedList应该包含的对象类型吗? (对于 Java)
也许obj.getClass?
基本上不是,泛型只是编译时的,需要在某处声明。
class Register<T> {
LinkedList<T> register;
Register(T obj) {
register = new LinkedList<T>();
}
例如,您可以使用工厂方法。
static <U> Register<U> of(U obj) {
Register<U> result = new Register<U>(obj);
return result;
}
}
Register<String> a = new Register<String>("abc");
Register<Double> b = Register.of(1.0d);
另见 Lesson: Generics。
泛型可能会造成混淆。我想你想要这个:
public class Register<T> {
private LinkedList<T> register = new LinkedList<T>();
public static <T> Register<T> create(T object) {
return new Register<T>();
}
}