泛型<T,...>
泛型<T,...>
1. 本质:参数化类型,把类型作为参数传递。
2. 常见形式:泛型类、泛型接口、泛型方法
3.语法:<T,...> T称为类型占位符,表示一种引用类型!
4.好处:
- (1)提高代码重用性
- (2)防止类型转换异常,提高代码的安全性
5.代码实现
-
泛型类
package com.sun.base.Generic; /** * 泛型类 * 语法,类名<T> * T是类型占位符,表示一种引用类型,如果编写多个使用逗号隔开 * */ public class Demo01<T> { //使用泛型T //1、创建变量 T t; //2、泛型作为方法的参数 public void show(T t){ System.out.println(t); } //3、泛型作为方法的返回值 public T getT() { return t; } public void setT(T t) { this.t = t; } } -
泛型接口
package com.sun.base.Generic; /** * 泛型接口 * 语法,接口名<T> * 注意:不能泛型静态常量 */ public interface MyInterface<T> { String name = "张三"; T server(T t); } -
泛型方法
package com.sun.base.Generic; /** * 泛型方法 * 语法,<T> 返回值类型 */ public class MyGenericMethod { //泛型方法 public <T> T show(T t){ System.out.println("泛型方法"+t); return t; } } -
测试
package com.sun.base.Generic; public class textDemo01 { public static void main(String[] args) { //使用泛型类创建对象 //注意:泛型只能使用引用类型,不同泛型类对象不能相互赋值 //泛型类 Demo01<String> objectDemo01 = new Demo01<String>(); objectDemo01.t = "Hello"; objectDemo01.show("大家好,加油"); String t = objectDemo01.getT(); Demo01<Integer> integerDemo01 = new Demo01<>(); integerDemo01.t = 100; integerDemo01.show(200); Integer t1 = integerDemo01.getT(); //泛型接口 MyInterfaceImpl impl = new MyInterfaceImpl(); impl.server("我很帅"); // 泛型方法 MyGenericMethod myGenericMethod = new MyGenericMethod(); myGenericMethod.show("少年强"); myGenericMethod.show(100); myGenericMethod.show(9.99); } }6.泛型集合
-
概念:参数化类型、类型安全的集合,强制集合元素的类型必须一致。
-
特点:(1)编译时即可检查,而非运行时抛出异常。
(2)访问时,不必类型转换(拆箱)。
(3)不同泛型直接引用不能向后赋值,泛型不存在多态。
-

浙公网安备 33010602011771号