Как сделать статический метод Java Generic?


Answers

public static <E> E[] appendToArray(E[] array, E item) { ...

Обратите внимание на <E> .

Статическим общим методам требуется собственное обобщенное объявление ( public static <E> ), отдельно от общего объявления public class ArrayUtils<E> ( public class ArrayUtils<E> ).

Если компилятор жалуется на неоднозначность типа при вызове статического универсального метода (опять-таки вряд ли в вашем случае, но, вообще говоря, на всякий случай), вот как явно вызвать статический универсальный метод с использованием определенного типа ( _class_.<_generictypeparams_>_methodname_ ):

String[] newStrings = ArrayUtils.<String>appendToArray(strings, "another string");

Это произойдет только в том случае, если компилятор не может определить общий тип, потому что, например, общий тип не связан с аргументами метода.

Question

Ниже приведен фрагмент того, как сделать общий класс java для добавления одного элемента в массив. Как сделать appendToArray статическим методом. Добавление статики к подписи метода приводит к ошибкам компиляции.

public class ArrayUtils<E> {

        public E[] appendToArray(E[] array, E item) {
            E[] result = (E[])new Object[array.length+1];
            result[array.length] = item;
            return result;
        }
}





Related