【泛型】编程
原由: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;
}
}