泛型的基本使用

泛型的优点

1、提高代码的重用性
2、防止类型转换异常,提高代码的安全性

泛型的分类

泛型用在类、接口和方法中时,他被称为泛型类、泛型接口、泛型方法

泛型类

泛型类的含义

把泛型定义在类上的被称为泛型类

泛型类的定义格式

public class 类名<泛型类型1,…>{
}

泛型类例子

public class Genericity<T>{
  private T t;
  public Genericity(T t){
     this.t=t;
  }
  public T getT(){
    return t;
  }
  public void setT(T t){
    this.t=t;
  }
}
public class test{
public static void main(String args[]){
   Genericity<String> g=new Genericity<>("这是泛型类的测试");
   System.out.println(g.getT());
   Genericity<Integer> i=new Genericity<>(200);
   System.out.println(i.getT());
}
}

泛型接口

泛型接口的含义

把泛型定义在接口上的被称为泛型接口

泛型接口的定义格式

public<泛型类型>返回类型 方法名(泛型类型 变量名){
}

  • 注意:
  • 方法声明中定义的形参只能在该方法里使用,而接口、类声明中定义的类型形参则可以在整个接口、类中使用。当调用fun()方法时,根据传入的实际对象,编译器就会判断出类型形参T所代表的实际类型。

泛型方法的例子

public interface Genericity<T>{
  void show(T t);
}

public class StringShowImpl implements Genericity<String> {

	@Override
	public void show(String t) {
		System.out.println(t);
		
	}

}
public class InterShowImpl implements Genericity<Integer> {

	@Override
	public void show(Integer t) {
		System.out.println(t);
		
	}

}
public class test{
 public static void main(String args[]){
  Genericity<String> s=new StringShowImpl();
	Genericity<Integer>i=new InterShowImpl();
	s.show("我是泛型接口的测试");
	i.show(200);
 }
}

泛型方法

泛型方法含义

把泛型定义在方法上的被称为泛型方法

泛型方法的定义格式

修饰符<代表泛型的变量> 返回值类型 方法名(参数){}

泛型方法的例子

public class Genericitys {
	public<T> T   show(T t) {
		System.out.println(t);
		return t;
	}

}
public class test{
public static void main(String args[]){
	Genericitys genericitys=new Genericitys();
	String s=genericitys.show("测试");
	Integer i=genericitys.show(200);
	System.out.println(s);
	System.out.println(i);
}
}

泛型集合

public class Student {
String nameString;
int age;
public Student(String nameString,int age) {
	this.nameString=nameString;
	this.age=age;
}
public void setAge(int age) {
	this.age = age;
}public void setNameString(String nameString) {
	this.nameString = nameString;
}
public int getAge() {
	return age;
}
public String getNameString() {
	return nameString;
}



@Override
public String toString() {
	return "Student [nameString=" + nameString + ", age=" + age + "]";
}

}

public class cs{
public static void main(String args[]){
	ArrayList<Student> list=new ArrayList<Student>();
	Student student=new Student("测试", 200);
	list.add(student);
//	list.add("测试");   会报错
	Iterator<Student> it=list.iterator();
	while (it.hasNext()) {
		System.out.println(it.next());
		
	}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值