最近正好使用到了Guava的TypeToken来获取泛型的类型信息 比如,泛型父类需要获取其子类定义的泛型类型时: public abstract class GenericClazz<V> { private Class<V> classType; public void doSth() { final TypeToken<V> typeToken = new TypeToken<V>(getClass()) {}; classType = (Class&
1.体验泛型 泛型是提供给javac编译器使用的,可以限定集合中的输入类型,让编译器挡住源程序中的非法输入,编译器编译带类型说明的集合时去除掉"类型"信息,使程序运行小效率不受影响,对于参数化的泛型类型,getClass()方法返回值和原始类型完全一样.由于编译生成的字节码会去掉泛型的类型信息,只要能跳过编译器,就可以往某个泛型集合中加入其它类型的数据,例如,用反射得到集合,在调用其add方法即可. ArrayList<String> collection1 = new A
设计IBseDao接口,定义公共的CRUD方法. // IBaseDao 接口,定义公共的CRUD方法 public interface IBaseDao<T> { public void add(T t); public void update(T t); public void delete(T t); public T getById(int id); public List<T> getList(int startIndex,int pageSize); public in
Created by Marydon on 1.概述 泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数: 这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法: 引入泛型的好处在于:编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率. 在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”: “任意化”带来的缺点是要做显式的强制类型转换,而
BaseDao接口: import java.util.List; public interface BaseDao<T,PK> { public void add(T t); public void upd(T t); public void del(PK id); public T getById(PK id); public List<T> getAll(); public List<Track> getByAid(String activityId); } Ba
Bean进行操作的相关工具方法 /** * <html> * <body> * <P> Copyright 1994 JsonInternational</p> * <p> All rights reserved.</p> * <p> Created on 19941115</p> * <p> Created by Jason</p> * </body> * </htm