Java泛型只是在编译器将[类型变量]都替换成了Object类型。在进行读取的时候,仍然是进行了强制转换。
/**
* FileName: pair.java
* CreateTime: 2010-8-3 下午03:31:50
* Author: Administrator
*/
package cn.com.sky.generic;
/**
* @author banna
*
*/
public class Pair<T> {
private T first;
private T second;
/**
*
*/
public Pair(){
first = null;
second = null;
}
/**
* @return the first
*/
public T getFirst() {
return first;
}
/**
* @param first the first to set
*/
public void setFirst(T first) {
this.first = first;
}
/**
* @return the second
*/
public T getSecond() {
return second;
}
/**
* @param second the second to set
*/
public void setSecond(T second) {
this.second = second;
}
}
/**
* FileName: GenericMain.java
* CreateTime: 2010-8-3 下午03:39:11
* Author: Administrator
*/
package cn.com.sky.generic;
/**
* @author banna
*
*/
public class GenericMain {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Pair<String> pair = new Pair<String>();
pair.setFirst("banna");
pair.setSecond("wu");
String first = pair.getFirst();
}
}
对应的.class文件反编译结果
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3)
// Source File Name: Pair.java
package cn.com.sky.generic;
public class Pair
{
public Pair()
{
first = null;
second = null;
}
public Object getFirst()
{
return first;
}
public void setFirst(Object first)
{
this.first = first;
}
public Object getSecond()
{
return second;
}
public void setSecond(Object second)
{
this.second = second;
}
private Object first;
private Object second;
}
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3)
// Source File Name: GenericMain.java
package cn.com.sky.generic;
// Referenced classes of package cn.com.sky.generic:
// Pair
public class GenericMain
{
public GenericMain()
{
}
public static void main(String args[])
{
Pair pair = new Pair();
pair.setFirst("banna");
pair.setSecond("wu");
String first = (String)pair.getFirst();
}
}
分享到:
相关推荐
Java泛型编程指南.pdf 此文章译自SUN的泛型编程指南
Java Generics and Collections 英文版,详细描述java 泛型技术
java 泛型类的类型识别示例 java 泛型类的类型识别示例 java 泛型类的类型识别示例
java 泛型接口示例 java 泛型接口示例 java 泛型接口示例
java 泛型方法使用示例 java 泛型方法使用示例 java 泛型方法使用示例
主要介绍了Java泛型的用法及T.class的获取过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
这是一个使用JAVA实现的泛型编程,分为两部分,第一部分创建泛型类,并实例化泛型对象,得出相加结果。 第二部分用户自行输入0--4,选择要进行的加减乘除运算或退出,再输入要进行运算的两个数,并返回运算结果及...
java泛型技术之发展,学习JAVA 泛型的不错东东
1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1.java泛型定义.zip1....
很好的Java泛型的总结,看完之后你一定会知道java泛型的底层机制,你一定会学会Java泛型!
4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip4.java泛型的限制.zip...
java,学习java泛型,java培训之泛型.pptxjava培训之泛型.pptxjava培训之泛型.pptxjava培训之泛型.pptx
深入理解java泛型,包括类名泛型的定义,方法泛型定义,泛型的返回
Sun公司的Java泛型编程文档,英文原版和网络翻译版,想对泛型有更清楚的认识的朋友可以看看,必定会有所帮助
java泛型详解.pdf
JAVA泛型源代码实现以下功能:返回数组元素的最大值/最小值下标;判断数组元素是否按升序排列;T对象数组排序;二分法查找key元素;
思维导图之Java泛型详解
Java泛型技术之发展
JAVA泛型教程(帮你解决学习泛型的苦恼). Java 泛型编程可能会碰到很多问题,本教程可能会对你有帮助哦。