Java中泛型T的用法

01-描述

T表示:返回值T是泛型,T只是一个占位符,用来告诉编译器,这个东西先给我留着,等我编译的时候再告诉你是什么类型。

02-用法

第一种用法:

Demo类的getListFisrt方法可以接受任意类型List参数。

package com.eleven.csdn0115;import java.util.ArrayList;
import java.util.List;/***  T表示:返回值T是泛型,T只是一个占位符,用来告诉编译器,这个东西先给我留着,等我编译的时候再告诉你是什么类型。* * @author sywangu**/
public class Demo {public static void main(String[] args) {Demo demo = new Demo(); // 创建一个demo对象// 获取String类型List<String> array = new ArrayList<String>(); // 创建一个ArrayList数组array.add("a");array.add("b");demo.getListFirst(array); // Demo类的getListFisrt方法可以接受任意类型List参数System.out.println(array);	// 打印出的结果是[a, b]// 获取Number类型List<Integer> nums = new ArrayList<Integer>();nums.add(12);nums.add(13);demo.getListFirst(nums);System.out.println(nums);	// 打印出的结果是[12, 13]}/***  T 表示可以传入任何类型 参数T * 第一个T表示泛型 * 第二个T表示返回的是T类型的数据 * 第三个T限制参数类型为T* * @param data* @return*/private <T> T getListFirst(List<T> data) {if (data == null || data.size() == 0) {return null;}return data.get(0);}}
第二种用法:

Demo2类在初始化的时候已经限定了T的类型,所以getListFirst方法只能接受List类型的参数。

package com.eleven.csdn0115;import java.util.ArrayList;
import java.util.List;/*** 单独T的用法* * @author sywangu**/
public class Demo2<T> {public static void main(String[] args) {// 获取String类型Demo2<String> demo = new Demo2<>();	// 限制"T"的类型为StringList<String> array = new ArrayList<String>();	// 返回的类型是Stringarray.add("a");array.add("b");String str =demo.getListFirst(array);	// 返回的类型是StringSystem.out.println(array);	// 打印出的结果是[a, b]// 获取Number类型Demo2<Integer> demo2 = new Demo2<Integer>();	// 限制"T"的类型为StringList<Integer> nums = new ArrayList<Integer>();	// 返回Integer类型nums.add(1);nums.add(2);Integer num = demo2.getListFirst(nums);	// 返回的类型是IntegerSystem.out.println(nums);	// 打印出的结果是[1, 2]}/*** 通用方法* @param data* @return*/private T getListFirst(List<T> data) {if(data == null || data.size() == 0) {return null;	}return data.get(0);}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部