2015-04-15 66 views
1

使用反射我有一个这样的方法:如何检查方法参数的类型时,在java中

public void get(Date date) 

而且我得到它使用反射,我要检查参数的类型,确定是否它是一种java.util.Date,我这样做:

Class<?> parametersType = method.getParameterTypes(); 
// check it 
if (parametersType[].equals(java.util.Date.class)) 
{ 
    // do something 
} 

我想知道,有没有其他方法?

回答

3

如果你想知道,如果一个方法有一个类型的单个参数Date你可以做

Class<?>[] parameters = method.getParameterTypes(); 
if (parameters.length == 1 && parameters[0] == Date.class)) { 
    // do something 
} 

如果强权但是是好做

if (parameters.length == 1 && parameters[0].isAssignableFrom(Date.class)) 

,因为这时你会如果发现该方法有一个参数,它将接受Date。例如,该参数可能是Object,CloneableComparable<?>类型,您仍然可以通过Date

相关问题