最近研究Java泛型,请问怎么创建这个类的实例:
public static class Test> {
public E get (E e) {
return e;
}
}
即使你使用[code="java"]
public class Test> {
public E get (E e) {
return e;
}
}
[/code]
那么他的子类最好轻便一些,照你这样可读性都不好,子类最好这样
[code="java"]
public class Test1 extends Test {
}
[/code]
直接Test test=new Test();声明就好,全部通过
这个类不对,会报变异错误,去掉static 就好了。
通常static修饰的是匿名内部类。上面的有完整写法为:
[code="java"]public class Warp{
public static class Test> {
public E get (E e) {
return e;
}
}
}[/code]
那么调用方法是:
[code="java"]Test t = new Warp.Test();
String a = t.get(new String("abc"));[/code]
[quote]测试了你的代码,不行 [/quote]
不是我的代码有问题,而是你给出了一个限定E extends Test,我使用的E是String。你改为
[code="java"]public class Warp{
public static class Test {
public E get (E e) {
return e;
}
}
}[/code]
[code="java"]Warp.Test t = new Warp.Test();
String a = t.get(new String("abc"));[/code]
就行了,如果要E extends Test。那么下面你要使用的类型必须为Test或Test的子类
我感觉你这个除了用?没有其他方法了,当然在不放弃泛型的情况下!因为你这像是一个循环。其实我感觉这样定义[code="java"]public class Test> {
public E get (E e) {
return e;
}
} [/code]
不错。这样就可以直接用Test test=new Test();初始化了。
[code="java"]public class Test1 extends Test {
}[/code]