如何获得Map中 String或Date类型
怎么获得Map<String,Date>中 String或Date类型
有一个要求就是获得范型中类型;想了很多招都不能实现。
但有框架确实能够达到这个要求,他们是怎么去实现的呢?
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class TestFanXing {
public static void main(String[] args) throws Exception{
Map<String, Date> map=new HashMap<String,Date>();
Method m= TestFanXing.class.getMethod("apply", Map.class);
Type[] t=m.getGenericParameterTypes();
ParameterizedType pt=(ParameterizedType)t[0];
System.out.println(pt.getRawType());
System.out.println(pt.getActualTypeArguments()[0]);
System.out.println(pt.getActualTypeArguments()[1]);
}
public static void apply(Map<String, Date> t){}
}
//---------------------------------结果:
interface java.util.Map
class java.lang.String
class java.util.Date
有一个要求就是获得范型中类型;想了很多招都不能实现。
但有框架确实能够达到这个要求,他们是怎么去实现的呢?
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
public class TestFanXing {
public static void main(String[] args) throws Exception{
Map<String, Date> map=new HashMap<String,Date>();
Method m= TestFanXing.class.getMethod("apply", Map.class);
Type[] t=m.getGenericParameterTypes();
ParameterizedType pt=(ParameterizedType)t[0];
System.out.println(pt.getRawType());
System.out.println(pt.getActualTypeArguments()[0]);
System.out.println(pt.getActualTypeArguments()[1]);
}
public static void apply(Map<String, Date> t){}
}
//---------------------------------结果:
interface java.util.Map
class java.lang.String
class java.util.Date