所有分类
  • 所有分类
  • 未分类

Java泛型-方法使用泛型(有示例)

简介

本文用示例介绍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 通配符

0

评论0

请先

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录