(Название звучит слишком причудливо, но я не смог найти совпадение, поэтому будем надеяться, что оно наглядно.)
У меня есть рабочий фрагмент кода:
@SuppressWarnings("unchecked")
public static Copyable[] copyOf(Copyable[] objects, Class type) {
Copyable[] copies = Arrays.copyOf(objects, objects.length, type);
for( int i=0; i < copies.length; ++i ) {
if( objects[i] == null )
throw new IllegalArgumentException("Copyable[] contains null reference", new NullPointerException());
copies[i] = objects[i].copy();
}
return copies;
}
Не так красиво, как хотелось бы, так как я должен передать класс массива, но он работает для того, что я хочу: выделить новый массив копируемого разработчика и заполнить его, используя реализованный метод.
Проблема, с которой я столкнулся, состоит в том, что это компилируется GWT, чья библиотека эмуляции JRE указывает на правильную Java, которую он не реализовал.Мне нужно сделать это без вызова Arrays.copyOf () и, надеюсь, без размышлений.
Примечание: я работаю над версией clone (), но на самом деле тоже не хочу полагаться на clone ().Я чувствую, что должно быть более чистое решение.