【发布时间】:2018-07-31 06:43:20
【问题描述】:
我在一个名为 NumberToStringConverter 的类中有以下方法:
public String convert(Number input) {
return String.valueOf(input);
}
我想用下面的代码调用方法:
NumberToStringConverter obj = new NumberToStringConverter();
Method m = obj.getClass().getMethod("convert", new Class[] { Long.class });
m.invoke(obj, new Object[] { aLongObject });
问题是,我收到以下错误:
java.lang.NoSuchMethodException: NumberToStringConverter.convert(java.lang.Long)
当您编写自己的代码时,Java 允许调用具有 Number 参数和 Long 参数的方法。它会自动将 Long 转换为 Number 对象。为什么这种匹配不会发生在反射中?我怎样才能让它发挥作用?
【问题讨论】:
标签: java methods reflection