Java回炉之泛型

Java回炉之泛型

泛型类

  1. 定义
public class Demo<T>{
    public void method(T t){
    }
}
  1. 使用
new Demo<String>().method("test");

泛型方法

  1. 定义
public class Demo{
    public <T> void method(T t){
    }
}
  1. 使用
new Demo().method("test");

泛型接口

  1. 定义
public interface Demo<T>{
    public abstract void method(T t);
}
  1. 指定类型实现及使用
public class DemoImpl implments Demo<String>{
    public void method(String s){}
}
//Demo<String> demo = new DemoImpl();demo.method("test");
  1. 泛型实现及使用
public class DemoImpl<T> implements<T>{
    public void method(T t){}
}
//Demo<Sting> demo =new DemoImpl<String>(); demo.method("test");

泛型中的通配符

假设如下定义

public class Base{}
public class A extends Base{}
public class B extends Base{}
public class Demo<T>{}
  1. ?通配符
Demo<?> demo = new Demo<Object>();
Demo<?> demo = new Demo<Base>();
Demo<?> demo = new Demo<A>();
Demo<?> demo = new Demo<B>();
//如果不写`?`则前后必须一致
  1. ? extends E
Demo<? extends Base> demo = new Demo<Object>();//编译报错
Demo<? extends Base> demo = new Demo<Base>();
Demo<? extends Base> demo = new Demo<A>();
Demo<? extends Base> demo = new Demo<B>();
  1. ? super E
Demo<? super Base> demo = new Demo<Base>();
Demo<? super Base> demo = new Demo<Base>();
Demo<? super Base> demo = new Demo<A>();//编译报错
Demo<? super Base> demo = new Demo<B>();//编译报错
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值