泛型

泛型:规定类型的一种方式   <类型>
为什么需要泛型?
List list = new ArrayList();  
list.add("aaa");  
list.add(100);  
for (int i = 0; i < list.size(); i++) {  
 String name = (String) list.get(i); //取出Integer时,运行时出现异常
 list可以放任何类型,但是取出时候很可能出现问题。
泛型好处:
   1.类型安全。编译期间检查类型,而不是运行期。将类型检查从运行期到编译期间容易找到错误,提高程序可靠性;
2.消除类型强制转化
使用情况
一般和集合使用,提前规定集合类型,在存入和取出保证同一类型。
注意:泛型类型并不会影响对象实例,如:
    List<String> stringList = new ArrayList<String>();
    List<Integer> integerList = new ArrayList<Integer>();
    System.out.println(stringList.getClass() == integerList.getClass());
输出:true
尽量使用精确地类型定义,一般在项目中<实体类>,表明该集合元素类型是实体类型。
例:  List<String>  stringList = new ArrayList<String>();
    List<Integer> integerList = new ArrayList<Integer>();
        
    printList(stringList);
    printList(integerList);
}
    
private static void printList(List<?> l)
{
    for (Object o : l)
        System.out.println(o);
泛型方法
private static <T> T ifThenElse(boolean b, T first, T second)
{
    return b ? first : second;
}


静态资源不认识泛型
泛型约束
1.定义类只能用extends关键字不能用通配符?
public class TestMain<T extends B>
{
    public static void main(String[] args)
    {
        new TestMain<C>();
    }
}
TestMain类的泛型支能传B的子类。
2.作为方法的参数,可以用通配符<? extends B>实际类型只能是B的子类,<? super B>实际类型只可以是B的父类;



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值