关于Java泛型的若干问题
来源:互联网 发布:网易上海房地产数据 编辑:程序博客网 时间:2024/06/05 03:15
在实例化对象时不指定泛型,则自动识别为object。
<span style="font-size:18px;">/** * *在定义类时,定义泛型 */public class People <T>{ private T name; private T age; public People(){ } public T getName() { return name; } public void setName(T name) { this.name = name; } public T getAge() { return age; } public void setAge(T age) { this.age = age; }}</span>
调用
<span style="font-size:18px;">/** * 在实例化对象时不指定泛型,则自动识别为object * * */public class FanXing2 { public static void main(String[] args) {// 如果实例化对象时,不指定泛型,则认为是Object People people = new People();// 里面的参数是Object类型 people.setName("刘备"); people.setAge("12"); String ageString= (String) people.getAge(); String nameString=(String) people.getName(); System.out.println(nameString); System.out.println(ageString); }}</span>
在继承泛型类的时候,子类没有声明泛型参数,编译器不会发出任何警告,入下代码中
class Derived2 extends GenericBase {} // No warning
不会有警告,只有在调用方法中需要用到泛型参数的时候才会有警告如下代码有警告
d2.set(obj); // Warning here!
继承声明时,中父类的泛型参数不能用?代替,否则编译不通过;
如下代码
class Derived3 extends GenericBase<?> {}// Strange error:// unexpected type found : ?// required: class or interface without bounds
以下是Java编程思想376开始的代码
class GenericBase<T> { private T element; public void set(T arg) { arg = element; } public T get() { return element; }}class Derived1<T> extends GenericBase<T> {}class Derived2 extends GenericBase {} // No warning// class Derived3 extends GenericBase<?> {}// Strange error:// unexpected type found : ?// required: class or interface without bounds public class ErasureAndInheritance { @SuppressWarnings("unchecked") public static void main(String[] args) { Derived2 d2 = new Derived2(); Object obj = d2.get(); d2.set(obj); // Warning here! }} ///:~
0 0
- 关于Java泛型的若干问题
- JAVA中关于String的若干问题
- 关于Winpcap的若干问题
- 关于DLL的若干问题
- 关于DES的若干问题:
- 关于fusionchart的若干问题
- 关于aotutrace 的若干问题
- 关于ARM的若干问题
- 关于CSpreadSheet的若干问题
- 关于指针的若干问题
- 关于fopen的若干问题
- 关于webview的若干问题
- 关于ListView的若干问题
- 关于ABST2的若干问题
- 关于CSpreadSheet的若干问题
- 关于Slidingmenu的若干问题
- 关于递归的若干问题
- 关于CSpreadSheet的若干问题
- TCP全连接队列和半连接队列已满之后的连接建立过程抓包分析
- iOS判断设备WiFi是否打开
- P58 test3-6
- 总结一下自己的2016
- Linux网络编程06——UDP协议编程
- 关于Java泛型的若干问题
- app外包公司开发一个app要多久?
- 单点登录的实现原理
- java开发环境搭建
- 我的博客标题233
- Linux网络编程07——广播
- Codeforces Round #257 (Div. 1) D. Jzzhu and Numbers
- idea 配置memcahced mvnrepository
- 利用JAXB实现java实体类和xml互相转换