Class<? extends ContextKey<?>>
Map<Class<? extends ContextKey<?>>, Object> dataMap = new HashMap<Class<? extends ContextKey<?>>, Object>();
一些小例子代码
package com.qbsea.knowledge.fanxing;
import com.qbsea.knowledge.fanxing.model.Model1;
import com.qbsea.knowledge.fanxing.model.Model2;
import com.qbsea.knowledge.fanxing.model.Result1;
//Class<? extends ContextKey<?>>
//protected Map<Class<? extends ContextKey<?>>, Object> dataMap = new HashMap<Class<? extends ContextKey<?>>, Object>();
public class Processor {
//原始的写法
public Object queryByModel(Object param) {
if(param instanceof Model1) {
return (Model1)param;
}else if(param instanceof Model2) {
return (Model2)param;
}
return null;
}
//传什么值返回什么值
public <T> T queryByFanXing(T param) {
return param;
}
public <T,E> E queryByFanXing1(T param,Class<E> resultClass) {
E e=null;
try {
e = resultClass.newInstance();
} catch (InstantiationException | IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return e;
}
public static void main(String[] args) {
Processor processor = new Processor();
Model1 model1=new Model1();
Model1 target = processor.queryByFanXing(model1);
//
Result1 result1 = processor.queryByFanXing1(model1, Result1.class);
System.out.println(result1.getClass());
}
}