泛型中的模糊继承,解析T的意义
關于泛型中的模糊繼承,我們常常會見到
T?extends? superClass 的語句,為什要采用這種方式呢?其實只定義T 意義是不大的,我們常常會用不確定的類,但是想調用確定的方法,在泛型中我們可以采用繼承父類或者接口來實現這種設想
比如說,我想定義一個類型,我希望里面有一個 compareTo()方法,而我們知道compareTo方法是接口 Comparable 中的,子類有很多,所以我們可以這樣限制? ArrayList<T extends Compareble> 這樣就可以往動態數組中添加實現了compareble的類型了,而且可以使用里面定義的方法。
看一下例子:
package com.jianjian2.Reflection;
?
publicclass GeniericTest6
{
?? publicstaticvoid main(String[] args)
?? {
????? People<String> people = new People<String>("a","n");
????? String[] s = {"a","b","vc"};
????? people.method(s);
?????
?? }
}
?
class People<TextendsComparable>
{
?? private Ts1;
?? private Ts2;
?? public People(T s1, T s2)
?? {
????? this.s1 = s1;
????? this.s2 = s2;
?????
?? }
?? public T getS1()
?? {
????? returns1;
?? }
?? publicvoid setS1(T s1)
?? {
????? this.s1 = s1;
?? }
?? public T getS2()
?? {
????? returns2;
?? }
?? publicvoid setS2(T s2)
?? {
????? this.s2 = s2;
?? }
?? public?void method(T[] t)
?? {
????? for(inti= 0;i < t.length;i ++)
????? {
??????? System.out.println(t[i].compareTo(t[i]));
????? }
?? }
??
??
}
實現了Comparable接口的compareTo方法,這樣就有了自己的比較機制了,這種方法常常應用到自定義類的比較!
總結
以上是生活随笔為你收集整理的泛型中的模糊继承,解析T的意义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈装饰模式应用于IO中
- 下一篇: Java中final和static对修饰