【发布时间】:2016-02-18 05:20:18
【问题描述】:
我正在编写一个库,我想在其中查找特定类上具有特定名称的方法并将其保存以备后用。我是通过反思这样做的:
public static Method findMethod(Class<?> instance_c, String name, Class<?> ... args_cs) {
return instance_c.getMethod(name, args_cs);
}
现在问题如下:
Class<?> c = int[].class;
// int[] i = new int[2].clone();
System.out.println(findMethod(c, "clone")); // Throws an exception
这是记录在案的行为:
方法 java.lang.Class.getMethod(String name, Class... parameterTypes):
[剪辑]
如果这个Class对象代表一个数组类型,那么这个方法找不到clone()方法。
有没有办法让我仍然可以将java.lang.reflect.Method 的功能与Array#clone 一起使用?我可以想象一个内置的或自写的 Proxie,让我在这种特殊情况下保留 Method 的功能。
如果我应该进一步解释我特别使用的Method 的内容,请发表评论。目标是尽可能多地保留。
【问题讨论】:
标签: java arrays reflection clone