配列の clone は getMethod では取得できない
へぇ、配列の clone メソッドは getMethod では取得できないんだ。初めて知った。配列の特殊扱いっぷりがわかって面白い。
で、実は clone は Object に protected メソッドとして定義されているからそもそも毎回 getMethod しなくていいのだな。これが。
public static final CopyUtils { private static final Method clone; static { try { clone = Object.class.getDeclaredMethod("clone"); } catch (NoSuchMethodException e) { throw new InternalError(); } } }
てな感じで良い。
あと、toCopyable で返されたオブジェクトは後 copy するしかなくて無意味な気がする。まんま clone したオブジェクトを返すメソッドのほうがいいんじゃないかなぁ。