Java之泛型

出现的意义

  • 为编码阶段的不确定性和转化做视觉设计
  • 讲运行期遇到的问题转移到了编译期,省去了强转的麻烦

语法

<T,T>返回2个值通用

注:在Java中,经常用T、E、K、V等形式的参数来表示泛型参数。

T:代表一般的任何类。
E:代表 Element 的意思,或者 Exception 异常的意思。
K:代表 Key 的意思。
V:代表 Value 的意思,通常与 K 一起配合使用。

package course.basic.str;

/**
 * @author m_long
 * @date 2020/6/25 9:57 下午
 */
public class LocalPair1 {
    private Object val1;
    private Object val2;

    public LocalPair1(Object val1, Object val2) {
        this.val1 = val1;
        this.val2 = val2;

    }

    public Object getVal1() {
        return val1;
    }

    public Object getVal2() {
        return val2;
    }


}

package course.basic.str;

import java.util.Date;

/**
 * @author m_long
 * @date 2020/6/25 10:01 下午
 */
public class LocalPair2App {
    public static void main(String[] args) {
        LocalPair2<String, String> pair = foo1();

        String val1 = pair.getK();
        String val2 = pair.getV();

        String[] arr1 = val1.split(",");
        String[] arr2 = val2.split(",");

        /**
         * 循环的一种写法
         *  String[] ni=new String[]{"国家","nih"};
         *                              for (String i : ni) {
         *          System.out.println(i);
         *          输出是
         *          国家
         *          nih
         */


        for (String s : arr1) {
            System.out.println("val1," + s);
        }

        for (String s : arr2) {
            System.out.println("val2," + s);
        }

    }

    public static LocalPair2<String, String> foo1() {
        // 1.String,String ->
        LocalPair2<String, String> pair1 = new LocalPair2<>("abc,abc", "bcd,bcd");
        // 经过了一堆的逻辑处理
        return pair1;
    }

    public static LocalPair2<String, Integer> foo2() {
        // 2.String,Integer ->
        LocalPair2<String, Integer> pair2 = new LocalPair2<>("abc", 1024);
        return pair2;
    }

    public static LocalPair2<Integer, Date> foo3() {
        // 3.Integer, Date ->
        LocalPair2<Integer, Date> pair3 = new LocalPair2<>(1024, new Date());

        return pair3;
    }
}

编译期报错
在这里插入图片描述

语法
静态
非静态

在这里插入代码片

Pail(一对),引用commons.lang3提供的方法
return2个数据,用pair
import org.apache.commons.lang3.tuple.Pair;

package course.basic.str;

import org.apache.commons.lang3.tuple.Pair;

import java.util.Date;

/**
 * @author m_long
 * @date 2020/6/26 11:45 上午
 */
public class CommonsPair {
    public static void main(String[] args) {
        Pair<String ,String> pair1 = Pair.of("abc","bcd");
        pair1.getKey();
        pair1.getLeft();

        pair1.getValue();
        pair1.getRight();

        Pair<String, Integer> pair2 = Pair.of("abc", 1024);
        Pair<Date, Integer> pair = Pair.of(new Date(), 1024);
        Pair<Date, Integer> pair3 = Pair.of(new Date(), 1024);

    }
}

面试

泛型使用场景,解决了什么问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值