2015-04-15 2 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, Cloneable или Comparable<?>, и вы все равно можете передать Date.

Смежные вопросы