也不一定要接口,就是第二个参数也可以为第一个参数的 继承类,但是不包含第一个参数本身class A<T , K extends T> 就算这样,也要 K != T
没弄明白你什么意思 class <? extends T>不可以吗? 为什么要加这么多限制呢?
可以,如下:class Super { }class Sub extends Super { }public class Test<T, K extends T> { private T a; private K b; public Test(T a, K b) { this.a = a; this.b = b; } public String toString() { return this.a.toString() + ", " + this.b.toString(); } public static void main(String[] args) { Test<Super, Sub> t = new Test<Super, Sub>(new Super(), new Sub()); System.out.println(t.toString()); //Test<Super, String> t2 = new Test<Super, Sub>(new Super(), "TestString"); //Error //System.out.println(t2.toString()); }}
这里的K、T是你自己定义的,约定也是要你在K、T之间定义,你的约定在A <T , K extends T>中只能约束定义,实现有可能就没有关系了
定义成 class A <T , K extends T>的结果是允许了A<classA,classA> 的定义 说下原始问题描述吧我需要一个类A,对于其他类进行处理,但是并不是所有类都可以处理的,对于特定的几个 类 B C D,我分别有对应的 BB CC DD 帮助类这样的情况下,我的A可以处理 B C D,但是再其他的就无法处理,我希望能在编译阶段就给出错误提示……
楼主【DarknessTM】截止到2008-07-18 17:16:33的历史汇总数据(不包括此帖):
发帖的总数量:19 发帖的总分数:510 每贴平均分数:26
回帖的总数量:681 得分贴总数量:251 回帖的得分率:36%
结贴的总数量:17 结贴的总分数:410
无满意结贴数:3 无满意结贴分:130
未结的帖子数:2 未结的总分数:100
结贴的百分比:89.47 % 结分的百分比:80.39 %
无满意结贴率:17.65 % 无满意结分率:31.71 %
楼主加油
class <? extends T>不可以吗?
为什么要加这么多限制呢?
可以,如下:class Super { }class Sub extends Super { }public class Test<T, K extends T> { private T a;
private K b; public Test(T a, K b) {
this.a = a;
this.b = b;
} public String toString() {
return this.a.toString() + ", " + this.b.toString();
} public static void main(String[] args) {
Test<Super, Sub> t = new Test<Super, Sub>(new Super(), new Sub());
System.out.println(t.toString());
//Test<Super, String> t2 = new Test<Super, Sub>(new Super(), "TestString"); //Error
//System.out.println(t2.toString());
}}
这里的K、T是你自己定义的,约定也是要你在K、T之间定义,你的约定在A <T , K extends T>中只能约束定义,实现有可能就没有关系了
class A <T , K extends T>的结果是允许了A<classA,classA> 的定义
说下原始问题描述吧我需要一个类A,对于其他类进行处理,但是并不是所有类都可以处理的,对于特定的几个 类 B C D,我分别有对应的 BB CC DD 帮助类这样的情况下,我的A可以处理 B C D,但是再其他的就无法处理,我希望能在编译阶段就给出错误提示……
由于写入Excel时,需要写入标题,但是标题信息不包括在那些类中,所以需要我自己写……所以我希望调用者能从编译期就知道他要写入的类是否得到了我的支持