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

JAVA泛型

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

JAVA泛型

泛型

笔记:Java704 | ProcessOn免费在线作图,在线流程图,在线思维导图

一、什么是泛型

泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参数具体的值,那样这个类型就可以在使用时决定了。这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。

二、泛型类

泛型作用的对象
泛型有三种使用方式,分别为:泛型类、泛型接口和泛型方法。
我们先介绍泛型类:在类的声明时指定参数,即构成了泛型类,例如下面代码中就指定T为类型参数,那么在这个类里面就可以使用这个类型了。

我们声明一个学生类,用来演示我们的泛型的作用:

//声明Student类时,同时约定数据类型T
public class Student{

	//声明T类型的变量name
	public T name;
	
	//声明T类型的形参name为T类型的成员变量赋值
	public Student(T name) {
		this.name=name;
	}
	
	//声明T类型返回值的方法say
	public T say() {
		return name;
	}
}

在使用类时就可以传入相应的类型,构建不同类型的实例,传入String,Integer,Boolean3个类型

public static void main(String[] args) {
		//泛型中只能使用引用数据类型
		Student s1=new Student("张三");
		Student s2=new Student(100);
		Student s3=new Student(true);
		
		System.out.println("Strng类型"+s1.name);
		System.out.println("Integer类型"+s2.name);
		System.out.println("Boolean类型"+s3.name);
	}

注意:泛型类型中只能使用引用数据类型,需要使用相应基本数据类型的包装类 

三、泛型接口

泛型接口的定义,与类相似,类对象在实例化时确定泛型的具体类型,接口是在实现时确定泛型的具体类型。

public interface IStudentService {

	public T say();
	
}
public class StudentService implements IStudentService{

	@Override
	public String say() {
		// TODO Auto-generated method stub
		return null;
	}

}
public class StudentService_2 implements IStudentService{

	@Override
	public Integer say() {
		// TODO Auto-generated method stub
		return null;
	}

}
四、泛型方法

定义泛型方法时,必须在返回值前边加一个< T >,来声明这是一个泛型方法,持有一个泛型T,然后才可以用泛型T作为方法的返回值。

public class Student {

	public String name;
	
	public int age;
	
	public  E m(E e) {
		return e;
	}
	
	public  void m1(E e) {
		System.out.println(e);
	}
}

型类要在实例化的时候就指明类型,如果想换一种类型,不得不重新new一次,可能不够灵活;而泛型方法可以在调用的时候指明类型,更加灵活。

五、泛型通配符

E - Element(在集合中使用,因为集合中存放的是元素),E是对各方法中的泛型类型进行限制,以保证同一个对象调用不同的方法时,操作的类型必定是相同的。E可以用其它任意字母代替
T - Type(Java 类),T代表在调用时的指定类型。会进行类型推断
K - Key(键)
V - Value(值)
N - Number(数值类型)
?- 表示不确定的java类型,是类型通配符,代表所有类型。?不会进行类型推断

	public void m(List list) {
		return;
	}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024722.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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