色欲av一区久久精品_久久综合色综合色88_无码在线观看不卡_色黄视频网站_亚洲国产精品久久久久秋霞66

java泛型demo

時(shí)間:2023-05-16

1.泛型類(lèi)
publicclassDog{privateTage;publicDog(Tage){this.age=age;
}publicTgetAge(){returnage;
}publicstaticvoidmain(String[]args){//Java7之后,尖括號(hào)中是不需要填寫(xiě)參數(shù)的Dogdog=newDog<>(“28”);
System.out.println(dog.getAge());
}
}
一般的類(lèi)
publicclassDog{privateObjectage;publicDog(Objectage){this.age=age;
}publicObjectgetAge(){returnage;
}publicstaticvoidmain(String[]args){
Dogdog=newDog(“28”);
System.out.println(dog.getAge());
}
}
這樣的代碼是完全可以履行了,那為什么還需要泛型類(lèi)?JAVA
1.安全性
publicclassDog{privateObjectage;publicDog(Objectage){this.age=age;
}publicObjectgetAge(){returnage;
}publicstaticvoidmain(String[]args){
Dogdog=newDog(“28”);
Integerage=(Integer)dog.getAge();
System.out.println(age);
}
}
上面的代碼編譯是完全可以經(jīng)過(guò)的,但是履行的時(shí)候就會(huì)出現(xiàn)ClassCastException反常
2.可讀性好,省去了反復(fù)的強(qiáng)制類(lèi)型轉(zhuǎn)化。
關(guān)于泛型類(lèi),java編譯器會(huì)將泛型代碼轉(zhuǎn)化成一般的非泛型代碼,
所以關(guān)于虛擬機(jī)來(lái)說(shuō),是沒(méi)有泛型類(lèi)的概念的。
為什么這么規(guī)劃呢?應(yīng)為泛型是jdk6今后才有的,為了向下兼容。
泛型辦法:
publicclassTestMethod{publicstaticbooleanisHas(T[]arr,Telemt){for(Tt:arr){if(t.equals(elemt)){returntrue;
}
}returnfalse;
}publicbooleanisString(Ss){if(sinstanceofString){returntrue;
}returnfalse;
}publicstaticvoidmain(String[]args){
Integer[]arr={1,5,6,8};
System.out.println(isHas(arr,8));
TestMethodtestMethod=newTestMethod();
System.out.println(testMethod.isString(5));
}
}
一個(gè)辦法是不是泛型和他的類(lèi)是不是泛型沒(méi)有任何關(guān)系。
泛型辦法需要在辦法的返回值前先聲明,在從后邊的代碼中使用。
泛型接口:
參照Comparable接口。
publicclassTestComparableimplementsMyComparable{privateIntegern;publicTestComparable(intn){this.n=n;
}
@OverridepublicbooleanisEquals(TestComparabletestComparable){returnthis.n.intValue()==testComparable.getN().intValue()?true:false;
}publicIntegergetN(){returnn;
}publicstaticvoidmain(String[]args){
TestComparabletestComparable1=newTestComparable(2);
TestComparabletestComparable2=newTestComparable(2);
System.out.println(testComparable1.isEquals(testComparable2));
}
}interfaceMyComparable{booleanisEquals(Tt);
}
類(lèi)型參數(shù)承繼某個(gè)類(lèi)
/***測(cè)驗(yàn)承繼class*/publicclassTestInheritClassextendsFather>{privateTt;publicTestInheritClass(Tt){this.t=t;
}voidoutput(){
System.out.println(t.getName());
}publicstaticvoidmain(String[]args){
Childchild=newChild(“李逵”);
TestInheritClasst=newTestInheritClass<>(child);
t.output();
}
}classFather{privateStringname;publicStringgetName(){returnname;
}publicFather(Stringname){this.name=name;
}
}classChildextendsFather{publicChild(Stringname){super(name);
}
}
測(cè)驗(yàn)承繼接口
/***測(cè)驗(yàn)承繼接口*/publicclassTestInheritInterfaceextendsIFruits>{privateTt;publicTestInheritInterface(Tt){this.t=t;
}voidoutput(){
t.shape();
}publicstaticvoidmain(String[]args){
Appleapple=newApple();
TestInheritInterfacet=newTestInheritInterface<>(apple);
t.output();
}
}interfaceIFruits{//形狀voidshape();
}classAppleimplementsIFruits{
@Overridepublicvoidshape(){
System.out.println(“蘋(píng)果是圓形的。”);
}
}

文章標(biāo)簽:

Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號(hào)

與項(xiàng)目經(jīng)理交流
掃描二維碼
與項(xiàng)目經(jīng)理交流
掃描二維碼
與項(xiàng)目經(jīng)理交流
ciya68