我用其他方法宣布了一个简单的类:
public void setDate(final Date date);
当我得到参数时:
List<Class<?>> params = new ArrayList<Class<?>>();
params.addAll(Arrays.asList(method.getParameterTypes()));
我确认它是最终的:
System.out.println("isFinal : " + Modifier.isFinal(params.get(0).getModifiers()));
但我得到了一个错误:
isFinal : false
但显然我宣布它是最终的。有什么问题?
答案 0 :(得分:4)
您在询问类型是final
,而不是参数 - 而且java.util.Date
不是最终类。
看看API,我无法立即看到任何确定参数是最终的方法 - 但这无论如何都是一个实现细节。它对调用者没有任何影响。
答案 1 :(得分:0)
params.get(0)
返回参数的类型(类)。在您的情况下,java.util.Date
是不最终。
不可能使用反射来找出你想要做的事情。