JAVA开发-泛型实例
JAVA开发过程中经常会涉及到跟踪源码或查看架构师核心代码的活动。在核心代码或源码中常见有<T>,<E>,<K,V>,Class<?>,<? extends T> <? super T> 相关的代码。看起来十分高大上,又不容易看懂,可能会吓退一些同学。在此做一次整理,并附相应代码供调试理解。
<T>,<E>,<K,V> 首先这些实际都是泛型中的占位符,也可以换成A-Z都是可以的。不是一定要写成这些,也可以A,B,C都是可以的。不过约定俗成的东西方便大家理解,尽量不擅自改动。
在贴录代码之前先说明一下相关类的关系
TypeClass类与TypeClass1是并行的两个演示bean,TypeClassA extends TypeClass, TypeClassB extends TypeClassA
这是基础的关系,下附相关代码
package generic.bean;
/**
- 测试Bean类
- @author zhousjmas@hotmail.com
-
*/
public class TypeClass {private static String key ;
private static String value;
static {
key = "key-TypeClass";
value = "value-TypeClass";
name = "name-TypeClass";
}public int num ;
private static String name;
public void getKey() {
System.out.println("key:"+key);
}
public void getValue() {
System.out.println("value:"+value);
}
public void getName() {
System.out.println("name:"+name);
}
}
package generic.bean;
public class TypeClass1 {
private static String key ;
private static String value; static { key = "key-TypeClass1"; value = "value-TypeClass1"; name = "name-TypeClass1"; } public int num ; private static String name; public void getKey() { System.out.println("key:"+key); } public void getValue() { System.out.println("value:"+value); } public void getName() { System.out.println("name:"+name); }
}
package generic.bean;
/**
- 测试Bean类,继承TypeClass
- @author zhousjmas@hotmail.com
-
*/
public class TypeClassA extends TypeClass {private String typeClassA ;
public void getTypeClassA(){
System.out.println("当前对象类型:"+this.getClass().getSimpleName());
}
}
package generic.bean;
/**
- 测试Bean类,继承TypeClassA
- @author zhousjmas@hotmail.com
-
*/
public class TypeClassB extends TypeClassA {private String typeClassB ;
public void getTypeClassB(){
System.out.println("当前对象类型:"+this.getClass().getSimpleName());
}
}
下边首先是<T>的描述,<T> 主要用来表示类型的泛型,有接口泛型,方法泛型和类的泛型
接口泛型,
package generic.t.interfaces;
/**
- 泛型接口
- @author zhousjmas@hotmail.com
-
@param <T>
*/
public interface IGenericT<T> {public T getResult() throws InstantiationException, IllegalAccessException;
}
对接口泛型的一种实现,在实现中指定具体的类,ublic class GenericTIImpl implements IGenericT<TypeClass>
package generic.t.interfaces;
import generic.bean.TypeClass;
/**
[ul]- JAVA-STRUTS教程-用JBuilder9 开发Struts实例
- 通过实例学习C#开发中的泛型
- Java实例开发01-01 屏幕捕获工具
- Java开发WebService实例--计数器
- Java开发WebService实例--计数器
- Java实例开发05-02 简单的HTTP服务器端
- 以简求快 Java快速开发框架LML配置及实例源码
- 通过实例学习C#开发中的泛型
- 一个简单的SWT程序实例及详解-Java基础-Java-编程开发
- [转]Web Service开发实例(java代码)
- java WebService开发实例
- Hbase API开发实例(Java版)
- WebService开发实例(java代码)
- 简单实例解读Java泛型
- Android开发从零开始之java-泛型初步
- Java Generics(泛型)简化DAO开发一例
- java图像界面开发简单实例-JButton及事件的简单应用
- Java socket 入门编程实例-Java基础-Java-编程开发
- [小技巧]使用Eclipse做Java开发时,JDK1.6居然也不认识enum和泛型的解决办法
- Java开发WebService实例--计数器