簡體   English   中英

如果對象具有特定方法,是否有辦法檢查Java運行時?

[英]Is there a way to check in Java runtime if an object has a specific method?

我有一個類,它有多個子類,每個子類都實現自己的方法。 其中一些子類有我需要調用的常用方法。 有沒有辦法在java中知道對象是否有方法(不使用instanceof )?

這可能指向設計缺陷,但您可以始終使用反射來檢查方法是否存在:

public static boolean hasMethod(Object obj, String methodName) {
    return Arrays.stream(obj.getClass().getMethods())
                 .anyMatch(m -> m.getName().equals(methodName));
}

當然,這可以改進以包括方法的簽名,但基本思想保持不變。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM