简介
本文用示例介绍Java在方法中加泛型的用法。
概述
方法前边的<T>: 表示本方法里边所有的T是由返回值的类型确定的。如果方法前边不加这个<T>,那就要在其他能说明这是泛型的地方加入,比如:类/接口 的定义处。
示例1:单个对象
package org.example.a; import java.util.HashMap; import java.util.Map; public class Demo { public static void main(String[] args) { Map<Object, Object> map = new HashMap<>(); map.put("abc", 1); map.put(12, "def"); Integer a = getValue("abc", map); String str = getValue(12, map); System.out.println("a:" + a + "; " + "str:" + str); } private static <T> T getValue(Object key, Map<Object, Object> map) { return (T) map.get(key); } }
执行结果
a:1; str:def
示例2:集合
package org.example.a; import java.util.ArrayList; import java.util.List; public class Demo { public static void main(String[] args){ List<String> list = new ArrayList<>(); list.add("aa"); list.add("bb"); list.add("cc"); String str = Demo.getFirst(list); System.out.println(str); List<String> subStrList = Demo.getFirstTwoSubList(list); System.out.println(subStrList); System.out.println(Demo.doNothing(list)); } private static <T> T getFirst(List<T> data){ if(data == null || data.size() == 0){ return null; } return data.get(0); } private static <T> List<T> getFirstTwoSubList(List<T> data){ if(data == null || data.size() == 0){ return null; } List<T> newList = new ArrayList<>(); newList.add(data.get(0)); newList.add(data.get(1)); return newList; } private static <T> Integer doNothing(List<T> data) { return 123; } }
执行结果
aa [aa, bb] 123
在这个示例中,那三个方法前边如果不加<T>,会报错,如下:
其他网址
《JAVA开发实战经典》=> 第10章 泛型
《JAVA开发实战经典》=> 第10章 泛型=> 10.4 通配符
请先
!