如何使用实现可比性的泛型

问题描述 投票:0回答:0

我对java中的某些东西很困惑。所以给我的项目是用java写栈,程序以public class Stack<T extends Comparable<? super T>>开头。然而,当试图在我的测试程序中运行它时,无论我向它抛出什么样的对象(整数、字符串),它都会返回错误 Ljava.lang.Object; cannot be cast to [Ljava.lang.Comparable。我的问题是这种实现泛型 T 但也扩展 Comparable 的泛型如何工作,以及为什么 String 仍然返回错误消息(我认为 String 已经实现了 Comparable?)。预先感谢您花时间阅读问题!

P.S:我还要提一下,我真的不需要在我的项目中比较堆栈,这就是堆栈类本身没有实现 Comparable 接口的原因。

我尝试过使用不同的对象(String、Integer),也尝试覆盖我类中的 compareTo 方法,但都返回相同的错误消息。

java-8 comparable
© www.soinside.com 2019 - 2024. All rights reserved.