这是个关于擦除边界的问题,如果是 List<T> 那么擦除后就是 List,但如果 List<T extends X>,设置它的边界后,那么这下擦除后会是什么呢? List<T> ? List<X> ?
public class HasF {
public void f() { System.out.println("HasF.f()"); }
}class Manipulator<T> { //这样会出错,但是如果class Manipulator<T extends HasF>这样就不会出错
private T obj;
public Manipulator(T x) { obj = x; }
public void manipulate() { obj.f(); }
}public class Manipulation {
public static void main(String[] args) {
HasF hf = new HasF();
Manipulator<HasF> manipulator =
new Manipulator<HasF>(hf);
manipulator.manipulate();
}
}
public class HasF {
public void f() { System.out.println("HasF.f()"); }
}class Manipulator<T> { //这样会出错,但是如果class Manipulator<T extends HasF>这样就不会出错
private T obj;
public Manipulator(T x) { obj = x; }
public void manipulate() { obj.f(); }
}public class Manipulation {
public static void main(String[] args) {
HasF hf = new HasF();
Manipulator<HasF> manipulator =
new Manipulator<HasF>(hf);
manipulator.manipulate();
}
}
解决方案 »
- 一个很简单的问题:怎么把一个java的项目导出成eclipse application
- 判断一个点是否在圆内?大家帮我看看这个写法有问题吗?是否有没考虑到的地方?
- 关于enum的问题
- 求助:关于文件输入输出方面的问题?
- JAVA有没有格式输入符
- HttpConnection 应该用那个jar包啊 它应该如何用啊!
- 我是一位初学者,用的是JBuilder 2005 ,用sql server 做后台服务,在运行程序的时候连接不到服务器,也没有抛出异常,该怎么办?
- jbuilder环境下编写的程序能否脱离jbuilder运行?
- 关于文本的输入问题
- java applet问题,大侠救命!!!!!!!!!
- 有关Validity Check
- 关于java垃圾回收
同意, 如果不定义 extends HasF, 那么obj怎么会f()这个接口呀!