[黑马程序员]——Java乏型

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

乏型是Java SE 1.5的新特性,在此之前Java是没有乏型概念的。乏型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。

在Java1.5之前,没有乏型的时候:
class Test {
  public static void main(String[] args) {
    Hashtable h = new Hashtable();
    h.put(new Integer(0), "value");
    String s = (String)h.get(new Integer(0));
    System.out.println(s);
  }
}

使用的是强制类型转换,而之后则:

class Hashtable<Key, Value> {
  ...
  Value put(Key k, Value v) {...}
  Value get(Key k) {...}
}

class Test {
  public static void main(String[] args) {
    Hashtable<Integer, String> h = new Hashtable<Integer, String>();
    h.put(new Integer(0), "value");
    String s = h.get(new Integer(0));    System.out.println(s);     
    }
}

乏型类

定义一个乏型类

class Text<T>{
    private T mT;    //定义乏型变量,传入的T是什么类型数据,那么这个mT就是什么类型的数据
    private T mT1;
}

实例化这个乏型类。

public static void main(String[] s){

    Test<String> t = new Test<String>();   //实例化Test

}

这个时候,我们在Test类中的mT和mT1都是String类型。

乏型方法

定义一个乏型方法:

public static <T>void print(T m){
    System.out.println(m);
}

这个方法我们能传入任何类型的数据。如:

public static void main(String[] s){

        print("Hello Heima !");  //传入字符串数据
        print(123456);           //传入int数据
        print(new Object());     //传入一个类
}

无论我们传入什么,都能成功运行。

乏型接口

其实乏型接口和乏型类定义差不多的,只不过一个使用class关键字,一个是使用interface关键字。

interface face<T>{
    T mT;
}

限制乏型类型

当我们想要传入的类型是一个类的子类时,可以使用:

public class Test {
    public static void main(String[] args) {

        Class<Test2> c = new Class<Test2>();
    }
}
class Test2 extends Test{

}
class Class<T extends Test>{

}

T extends Test,那么我们传入的数据类型必须是Test和Test的子类。如果传入String或int就会报错,这样我们就能限制传入的数据类型了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值