我有一个这样的方法:
public void get(Date date)
我使用反射获取它,我想检查参数的类型,确保它是否是 java.util.Date 的类型,我是这样做的:
Class<?> parametersType = method.getParameterTypes();
// check it
if (parametersType[].equals(java.util.Date.class))
{
// do something
}
我想知道,还有其他办法吗?
最佳答案
如果你想知道一个方法是否有一个类型为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
.
关于java - 在java中使用反射时如何检查方法参数的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29639601/