java通用方法,运行时错误,

杰斯

当我尝试运行以下代码时,编译器会生成

线程“主”中的异常java.lang.RuntimeException:无法编译的源代码-错误的符号类型:JTOGenerics.ArrayCode.main(ArrayCode.java:17)上的JTOGenerics.ArrayCode.countGreaterThan Java结果:1

代码行下方有一条红线:int av = ArrayCode.countGreaterThan(marks,10);

我是Java的新手,由于我的知识有限,我尝试并未能找到错误,有人可以帮助我吗?提前谢谢了!!

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);
    }
}
格特曼

您已经ComparableArrayCode类中定义了自己的接口看来通用static方法的类型绑定countGreaterThan正在解析到该Comparable接口。但是,改为Integer实现内置java.lang.Comparable接口。

删除自己的Comparable界面,这意味着Comparable将引用内置Comparable界面。

另外,ArrayCode该类不需要实现Comparable自身(除非您在您的文章中没有看到其他非静态代码);您可以删除implements Comparable<T>on ArrayCodeArrayCode自己的T类型参数和ArrayCodecompareTo方法。另外,您不需要Comparable<T>在这种if情况下强制转换没必要

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java运行时错误。缺少静态main方法

来自分类Dev

Java程序出现运行时错误

来自分类Dev

Java中的NZEC运行时错误

来自分类Dev

java运行时错误NoClassDefFoundError

来自分类Dev

Java运行时错误(GUI类)

来自分类Dev

Oracle Java Javac运行时错误

来自分类Dev

Java 1.7运行时错误

来自分类Dev

为了避免对Java通用方法进行运行时类型检查,必须重写吗?

来自分类Dev

Excel VBA:运行时错误(对象“范围”的方法“值”失败),但仅在连续运行时

来自分类Dev

Excel VBA:运行时错误(对象“范围”的方法“值”失败),但仅在连续运行时

来自分类Dev

运行时通用类型确定

来自分类Dev

在运行时添加通用约束?

来自分类Dev

在运行时添加通用约束?

来自分类Dev

在PCL的运行时检测通用应用

来自分类Dev

应用未运行时的通用链接

来自分类Dev

调用通用方法并在运行时设置通用类型

来自分类Dev

如何为所有其他运行时错误添加通用错误页面?

来自分类Dev

IDataReader运行时错误

来自分类Dev

if语句运行时错误

来自分类Dev

NullPointerException运行时错误

来自分类Dev

Pthread运行时错误

来自分类Dev

Mingw运行时错误

来自分类Dev

领域运行时错误

来自分类Dev

Pywasm运行时错误

来自分类Dev

运行时错误-UndefinedBehaviourSanitizer

来自分类Dev

运行时生成错误

来自分类Dev

运行时错误'1004'

来自分类Dev

truncateFileAtOffset运行时错误

来自分类Dev

NullPointerException运行时错误