本文主要是介绍java的Type类型的使用,适合写框架用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一个带有范型的接口
public interface CallBack<T extends Response,Q extends Request>{default before(Q reuqets){}default T execute(Q request){
return null;
}default after(T reponse,Q request){
}
}
解析这个范型public <T extends Response> T buildResponse(CallBack callBack,Q request){T response=null;
//获取当前类的父类的类型Type type=callBack.getClass().getGenericSuperclass();
//将父类的类型转换成范型的类型,然后获取范型类型的第一个参数
Type t = ((ParameterizedType) type).getActualTypeArguments()[0];
//判断Type类型是否是基本类型Class<?>
if(t instanceof Class<?>){
//强制转换Class<?> c=(Class<?>) t;
//创建对象的实例T res=(T)c.newInstance();return res;} }
空接口
Type是个空接口,没有定义任何方法,通过多态提高了程序的扩展性,具体实现去看下面的子类;
这篇关于java的Type类型的使用,适合写框架用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!