java中的泛型

泛型

泛型在类中的使⽤

语法部分

定义: 在类名的后⾯, 紧跟上⼀对尖括号。

class Animal <T> {}
class Dog <T, M> {}

泛型类的使⽤: 声明引⽤、实例化对象、被继承。

// 1. 声明引⽤
Animal<String> animal;
// 2. 实例化对象
Animal<Integer> animal = new Animal<>();
// 3. 被继承
class Dog extends Animal<String> {}
class Dog<T> extends Animal<T> {}

泛型类的特点

​ 在类中定义的泛型, 虽然还不明确是什么类型, 但是在当前类中是可以使⽤的。
​ 在使⽤到这个类的时候, 必须要指定泛型的类型。 如果不指定, 默认是Object。

​ 泛型, 只能在当前的类中使⽤, 不能在其他的类中使⽤, 包括⼦类。

泛型在接⼝中的使⽤

语法部分

泛型接⼝的定义: 在接⼝名字的后⾯, 添加上⼀对尖括号。 在尖括号⾥⾯定义泛型。

interface MyInterface<T> {}
interface MyInterface<T, M> {}

泛型接⼝的使⽤: 实现类实现接⼝、 使⽤接⼝访问接⼝中的静态成员、 被继承。

// 1. 实现类实现接⼝
class MyInterface1Impl implements MyInterface1<Person> {}
// 2. 被继承
interface SubMyInterface extends MyInterface1<String> {}

泛型接⼝的特点

在接⼝中定义的泛型, 虽然还不明确是什么类型, 但是在当前接⼝中是可以使⽤的。
在使⽤到这个接⼝的时候, 必须要指定泛型的类型。 如果不指定, 默认是Object。

泛型, 只能在当前的接⼝中使⽤, 不能在其他的接⼝中使⽤, 包括⼦接⼝。

⼦类使⽤接⼝泛型

这⾥有两种情况:
第⼀种:⼦类与接⼝泛型⼀致,接⼝可以直接使⽤泛型类型
第⼆种:接⼝使⽤泛型,⼦类不⽤,在实现的接⼝位置必须指定⼀个具体的数据类型

泛型在⽅法中的使⽤

语法部分

定义: 泛型⽅法中, 在定义⽅法时,在返回值前⾯通过定义泛型。

public static <T> void test(T t) {
}

在定义处的<>⽤来定义泛型
在调⽤处的<>⽤来使⽤泛型

泛型⽅法的分类

第⼀:⽅法上的泛型与类上的⼀致
第⼆:⽅法上独⽴使⽤泛型
在⽅法中定义的泛型, 虽然还不明确是什么类型, 但是在当前⽅法中是可以使⽤的。
泛型⽅法, 在使⽤的时候, 不能跟类、接⼝似的, ⼿动的设置类型。 泛型⽅法中, 泛型的设置, 在参数中体现。
泛型⽅法, ⼀定需要是有参的。 参数列表中, 必须有泛型类型。
泛型⽅法中的泛型的设置, 是通过在调⽤⽅法的时候, 实参的类型推导出来的。
泛型, 只能在当前的⽅法中使⽤, 不能在其他的⽅法中使⽤。

第三:静态⽅法使⽤泛型

关于java中?的使⽤总结

​ ⽤于?: 这⾥是三⽬运算符⼀部分,前⾯是判断条件,后⾯是两个分⽀结果
​ ⽤于数据库的sql语句 select * from emp where name=? :表示占位符
​ ⽤于泛型,是通配符,表示任意⼀种数据类型.

	//这⾥的Object与前⾯的?没有关系
	Class<?> class1 = Object.class;
	//如果类的泛型使⽤时写成?是可以的.作为返回值时,会默	认成Object类型,但
	是作为参数不⾏.
	//所以在给对象指定泛型时要写具体类型
	Test<?> test = new Test();
	//test.run(new Object());
class Test<T>{
	T e;
	public T run(T a) {
		T t = null;
		return t;
	}
}

限制上限<? extends E>

**定义:**限制的是整个的<>可以取的泛型类型的上限是E,<>中可以取的类型是E及E的⼦类

限制下限<? super E>

定义:限制的是整个的<>可以取的泛型类型的下限是E,<>中可以取的类型是E及E的⽗类

Collections⼯具类

API

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
Collections.reverseOrder();排序规则取反。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值