java语法_泛型用法小例子_写给自己看的

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());
	}
}

猜你喜欢

转载自blog.csdn.net/maqingbin8888/article/details/81324215