繁体   English   中英

在java中使用反射时如何检查方法参数的类型

[英]How to check the type of method parameter when use reflection in java

我有一个这样的方法:

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参数。 例如,参数可以是ObjectCloneableComparable<?> ,您仍然可以传递Date

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM