【泛型】編程
原由:JDK1.4以前類型不明確spa
<1>裝入集合的類型都被當作Object對待,從而失去本身的實際類型。對象
<2>從集合中取出時每每須要轉型,效率低,且很容易出錯。get
解決辦法:io
<1>在定義集合的時候同時定義集合中對象的類型class
----實例程序:效率
List<String> c = new ArrayList<String>();泛型
//本來傳入的強制轉換爲Object類型,這裏不須要了,直接限定爲String類型List
c.add("aa");數據類型
c.add("bb");
c.add("cc");
for(int i=0;i<c.size();i++){
String c = c.get(i);
System.out.println(c);
}
好處:加強程序的可讀性和穩定性
【普通泛型】
package com.company.section1;
public class Client {
//工資低於2500元的上斑族而且站立的乘客車票打8折
public static <T extends Staff & Passenger> void discount(T t){
if(t.getSalary()<2500 && t.isStanding()){
System.out.println("恭喜你!您的車票打八折!");
}
}
//這裏使用泛型編程,由於傳入的參數有兩種類型:int,boolean,這樣能夠實現不一樣數據類型的操做。
public static void main(String[] args) {
discount(new Me());
}
}
//職員
interface Staff{
//工資
public int getSalary();
}
//乘客
interface Passenger{
//是不是站立狀態
public boolean isStanding();
}
class Me implements Staff,Passenger{
public boolean isStanding(){
return true;
}
public int getSalary() {
return 2000;
}
}