java泛型——类、接口、方法


泛型的一个重要的作用就是类型的限定。如下代码将其arr1的类型限定为String不可以向集合添加其他类型的元素,arr2没有进行限定可以是任意类型,即Object代码如下所示。

package com.lari.demo;

import java.util.ArrayList;

public class Test {

    public static void main(String[] args){
        ArrayList<String> arr1 = new ArrayList();
        arr1.add("hello");
        // arr1.add(1);

        ArrayList arr2 = new ArrayList();
        arr2.add("hello");
        arr2.add(1);

    }
}

泛型类

如下,为其泛型类GenericType的定义与使用,对于不定义的实例g1,也相当与没有进行限定t可以设置任意类型为,而g2的t只可以设定为String类型。

package com.lari.demo;
//泛型类
public class GenericType <T>{
    T t;
    public void setT(T t) {
        this.t = t;
    }

    public void showT() {
       System.out.println(t);
    }
}
// 测试
package com.lari.demo;
import java.util.ArrayList;
public class Test {

    public static void main(String[] args){
        GenericType g1 = new GenericType();
        g1.setT(1);

        GenericType<String> g2 = new GenericType();
        g2.setT("hahhah");

    }
}

泛型接口

// 泛型接口
public interface GenericInter <T> {

    public void show(T t);
}
// 实现1(明确泛型的情况)
public class GenericImp1 implements GenericInter<String>{
    @Override
    public void show(String s) {
        System.out.println(s);
    }
}
// 实现2(不明确泛型的情况)
// 注意GenericInter后带<T>,否则实现的时候方法就变为public void show(Object o){}
public class GenericImp2<T> implements GenericInter<T> {
	
    @Override
    public void show(T t) {

    }
}

泛型方法

返回值类型在返回值类型前面,这样就可以在参数里面使用泛型了

package com.lari.demo;

import java.util.ArrayList;

public class Test {

    public static void main(String[] args){
        show("hahhah");
    }

    public static  <T, E> void show(T t){
            System.out.println(t);

    }
}

通配符与协变

数组可以协变但是集合不可以。所以在这里使用通配符

此处代码等有时间再补充上吧,该睡觉觉啦!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值