Портирование Arrays.copyOfRange с Java 6 на Java 5 - PullRequest
1 голос
/ 01 ноября 2011

У меня есть некоторый исходный код, который мне нужно сделать работоспособным под Java 5. К сожалению, этот код использует Arrays.copyOfRange функцию, которая была представлена ​​только в Java 6. Что было бы наиболее эффективным способом реализации того же самого утилита, использующая только API Java 5?

Ответы [ 3 ]

4 голосов
/ 01 ноября 2011

Вот код от OpenJDK для тех, кто интересуется:

public static byte[] copyOfRange(byte[] original, int from, int to) {
    int newLength = to - from;
    if (newLength < 0)
        throw new IllegalArgumentException(from + " > " + to);
    byte[] copy = new byte[newLength];
    System.arraycopy(original, from, copy, 0,
                     Math.min(original.length - from, newLength));
    return copy;
}
1 голос
/ 01 ноября 2011

Посетите страницу OpenJDK 6 - это Java с открытым исходным кодом.Вы можете скачать и прочитать исходный код самостоятельно, узнать, как он реализован, и вручную добавить функциональность в приложение.

0 голосов
/ 01 ноября 2011

Самый быстрый способ - использовать System.arraycopy. Это то, что сделано классом Arrays, кстати.

...