Java generic method, runtime error,

When I tried to execute the code below, the compiler generates

An exception in the "main" thread java.lang.RuntimeException: Uncompiled source code - Invalid sym type: JTOGenerics.ArrayCode.countGreaterThan in JTOGenerics.ArrayCode.main (ArrayCode.java:17) Java Result: 1

There is a red line below the line of code: int av = ArrayCode.countGreaterThan (tags, 10);

I am new to Java and due to my limited knowledge, I tried and could not find the error, can someone please help me? Thank you very much in advance!

public class ArrayCode<T> implements Comparable<T> {

    public static void main(String[] args) {
        Integer[] marks = new Integer[] {12, 0, 15, 18, 4};
        int av = ArrayCode.countGreaterThan(marks, 10);
        System.out.println("the number of Marks that are greater than 10 is: " + av);

    }

    public static <T extends Comparable<T>> int countGreaterThan(T[] anArray, T elem) {
        int count = 0;
        for (T e : anArray) {
            if (((Comparable<T>)e).compareTo(elem) > 0) {
                ++count;
            }
        }
        return count;
    }

    @Override
    public int compareTo(T o) {
        if (this.equals(o)) {
            return 1;
        } else {
            return 0;
        }
    }

    public interface Comparable<T> {

        public int compareTo(T o);
    }
}
+4
source share
2 answers

Comparable ArrayCode. -, static countGreaterThan Comparable. Integer java.lang.Comparable.

Comparable, , Comparable Comparable.

, ArrayCode Comparable ( , ); implements Comparable<T> ArrayCode, ArrayCode T ArrayCode compareTo. , Comparable<T> if; .

+5

, Comparable.

Integer .

.

+3

Source: https://habr.com/ru/post/1615496/


All Articles