簡體   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