Отправка массива в качестве параметра в универсальном методе Java

class MaximumTest {
    // determines the largest of three Comparable objects
    public static <T extends Comparable<T>> int CountDuplicates(T[] anArray, T elem) {
        int count = 0;
        for (T e: anArray)
            if (e.compareTo(elem) == 0)
            ++count;
        return count;
    }
    public static void main(String args[]) {
        double[] D_arr = {
            1.2, 3.4, 0.0, 4.5, 0.0
        };
        int[] I_arr = {
            0, 0, 0, 0, 1, 3, 5
        };
        System.out.println("No of zeros in Double Array = " + CountDuplicates(D_arr, 0.0));
        System.out.println("No of zeros in Double Array = " + CountDuplicates(I_arr, 0));
    }
}

В чем ошибка этого кода ??

Вы пробовали запустить его? Он показывает вам сообщение об ошибке, которое сообщает вам, в чем может быть проблема.

Ben 15.05.2018 15:31

как сложно поместить это в IDE?

Eugene 15.05.2018 15:33
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
55
1

Ответы 1

Ваши массивы должны быть ссылочного типа:

Double[] D_arr = {1.2, 3.4, 0.0, 4.5, 0.0};
Integer[] I_arr = {0,0,0,0,1,3,5};

Примитивный тип нельзя использовать в качестве универсального.

После этого изменения ваш код пройдет компиляцию и выдаст результат:

No of zeros in Double Array = 2
No of zeros in Double Array = 4

Другие вопросы по теме