栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习笔记(九)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习笔记(九)

Java学习笔记(九)
    • 泛型(Generic)
    • 泛型类
    • 泛型方法
    • 泛型接口
    • 泛型通配符

泛型(Generic)

类型安全,Java泛型只在编译阶段有效:在编译过程中,正确检查泛型结果后,会将泛型的相关信息擦除,并且在对象进入和离开方法的边界处添加类型检查和类型转换的方法。也就是说,泛型信息不会进入到运行时阶段

泛型类
class A{
	private T key;
	public void setKey(T key) {
		this.key=key;		
	}
	public T getKey() {
		return this.key;
	}
}

A a=new A();
A a=new A(); //不指定泛型相当于指定了Object类型
泛型方法
class C{
	private E e;
	
	public static  void test3(T t){
	//静态方法中不能使用类定义泛型,只能使用静态方法自己定义的泛型
		System.out.println(t);
	}
	
	public  void test(T s){
		//在类中定义的泛型也可以在普通方法中使用
		System.out.println(this.e); 
		T t=s;
	}
	public  T test1(T s){
		return s;
	} 
	public  void test2(T...  strs){
		for(T s:strs){
			System.out.println(s);
		}
	}
	
}

public class Test1{
	public static void main(String[] args){
		C c=new C();
		//泛型方法,在调用之前没有固定的数据类型
		//在调用时,根据传入的参数类型将泛型改为此类型
		c.test1(2);
		c.test1(true);
	}
}
 
泛型接口 
interface IB{
	T test(T t);
}
//未传入泛型实参时,与泛型类的定义相同,在声明类的时候,需要将泛型的声明一起加到类中
class B1 implements IB{
	
	@Override
	public T test(T c){
		return t;
	}
}
//如果在实现接口时指定泛型的类型
class B2 implements IB{
	@Override
	public String test(String t){
		return t;
	}
}

泛型通配符
class Dd{
	//需要一个List集合,但不确定List集合到底存的是什么数据类型
	public void test(List list){
	}
}

有限制的通配符

  • class及其子类
  • class及其父类
  • 接口及其实现类
转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号