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

JAVA学习-Java泛型的基本使用

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

JAVA学习-Java泛型的基本使用

因为集合的中存放的数据类型不固定,在往集合中存放元素时容易因为数据类型不一致的问题导致安全隐患,于是 Java 推出了泛型用于规范集合的数据类型。

定义泛型类

在定义带类型参数的类时,在紧跟类名之后 <> 内,指定一个或多个类型参数的名字,同时也可以对类型参数的取值范围进行限定,多个类型参数之间用逗号分隔。定义完类型参数后,可以在定义位置之后的几乎任意地方(静态块, 静态属性,静态方法除外)使用类型参数,就像使用普通的类型一样。注意, 父类定义的类型参数不能被子类继承。

普通定义类:

public class Demo {
	
	private Object object;
	
	public Demo(Object object) {
		this.object = object;
	}

	public Object getObject() {
		return object;
	}

	public void setObject(Object object) {
		this.object = object;
	}
	
}

 定义泛型类:

public class Demo {
	
	private T object;
	
	public Demo(T object) {
		this.object = object;
	}

	public T getObject() {
		return object;
	}

	public void setObject(T object) {
		this.object = object;
	}
	
}

使用泛型类:

public static void main(String[] args) {
	Demo demo = new Demo(233);
	Demo demo2 = new Demo("诶嘿~");
	Demo demo3 = new Demo(13.14);
	System.out.println(demo.getObject());
	System.out.println(demo2.getObject());
	System.out.println(demo3.getObject());
}

结果:

233
诶嘿~
13.14
定义泛型方法

在定义带类型参数的方法时,紧跟可见范围修饰(例如 public )之后的 <> 内,指定一个或多类型参数的名字, 同时也可以对类型参数的取值范围进行限定,多个类型参数之间用逗号分隔。

 定义普通方法:

public static void print(Object[] objects) {
	for(Object object: objects) {
		System.out.print(object);
	}
}

定义泛型方法:

public static  void print(T[] ts) {
	for(T t: ts) {
		System.out.print(t);
	}
}

使用泛型方法:

public static void main(String[] args) {
	Integer[] nums = new Integer[]{1, 1, 4, 5, 1, 4};
	print(nums);
	String[] strings = new String[]{"诶", "嘿", "哈哈哈哈"};
	print(strings);
}

结果:

114514诶嘿哈哈哈哈
定义泛型接口:

在定义带类型参数的接口时,在紧跟接口名之后 <> 内,指定一个或多个类型参数的名字,同时也可以对类型参数的取值范围进行限定,多个类型参数之间用逗号分隔。接口中不能使用泛型来定义成员属性。

定义普通接口:

interface Animal{
	
	public Object call();
	
	public Object eat(Object food);
	
}

定义泛型接口:

interface Animal{
	
	public T call();
	
	public T eat(T food);
	
}

使用泛型接口:

public class Demo {
	
	public static void main(String[] args) {
		Cat cat = new Cat();
		System.out.println(cat.call());
		System.out.println(cat.eat("鱼"));
		
		Dog dog = new Dog();
		System.out.println(dog.call());
		System.out.println(dog.eat(111));
	}
}

class Cat implements Animal{

	@Override
	public String call() {
		return "喵喵喵喵喵喵";
	}

	@Override
	public String eat(String food) {
		return food;
	}
}

class Dog implements Animal{

	@Override
	public Integer call() {
		return 555555;
	}

	@Override
	public Integer eat(Integer food) {
		return food;
	}
}

结果:

喵喵喵喵喵喵
鱼
555555
111

这里我只讲了下泛型的基本使用,如果想要了解的更详细的话推荐去看这个大佬的:

java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一_s10461的博客-CSDN博客_java泛型https://blog.csdn.net/s10461/article/details/53941091记住,看会和自己真的会是两个概念,多实践多动手才能真正理解。

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

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

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