来自https://stackoverflow.com/a/1079799
Java设计不适合鸭子打字。你可能选择的方式 这是反思:
public void doSomething(Object obj) throws Exception { obj.getClass().getMethod("getName", new Class<?>[] {}).invoke(obj); }
new Class<?>[] {}
是什么意思?感谢。
答案 0 :(得分:5)
这会创建一个类型为Class<?>
的空数组(这是Class
es的外卡捕获)。创建的数组明确长度为0
。这表明getName
不带参数(如果它接受了参数,则数组需要包含匹配类型签名的相应类)。