gpt4 book ai didi

java.lang.String 无法转换为 Comparable

转载 作者:行者123 更新时间:2023-12-01 13:07:38 24 4
gpt4 key购买 nike

我有一个自定义的可比较接口(interface)和一个对象列表,其中包含使用该接口(interface)的插入方法,并且它一直说当我所拥有的类实现可比较接口(interface)并具有 java.lang.String 时,无法将其强制转换为 Comparable类中的方法是有问题的代码部分:

public class Employee implements Comparable{
private String str1;
private String str2;
private String str3;
private String name;
private int count;
SuperOutput so = new SuperOutput("csis.txt");
ObjectList O2 = new ObjectList();

public Employee(String e)
{
name = e;
}

public int compareTo(Object o)
{
Employee e = (Employee) o;
return name.compareTo(e.getName());
}
public ObjectList AlphabeticalOrd()
{
ObjectList ol = new ObjectList();
ObjectListNode on = new ObjectListNode();
Employee ep;
on = O2.getFirstNode();
Object o;
so.output("\r\nThese are the employees in alphabetical order");
while(on != null)
{
ObjectListNode s = on;
//ep = (Employee) s.getInfo();// And this
o = s.getInfo(); //I have tried using this
//System.out.println(O.toString() + "ddddd><<<");
ol.insert(o);
on = on.getNext();
}
O2 = ol;
return O2;
}

这是类似的界面//可比较的.java接口(interface)

public interface Comparable {
public int compareTo(Object o);
}

这里是插入方法

  public void insert(Object o) {
ObjectListNode p = list;
ObjectListNode q = null;
while (p != null && ((Comparable)o).compareTo(p.getInfo()) > 0) {
q = p;
p = p.getNext();
}
if (q == null)
addFirst(o);
else
insertAfter(q, o);
}

最佳答案

似乎您定义了自己的 Comparable 接口(interface),而 String 肯定没有实现该接口(interface)。您应该使用 Java 的 Comparable 接口(interface) ( http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html )。

例如这个:

Comparable<String> comparable = (Comparable<String>)(new String());

是一段完全有效的代码。

关于java.lang.String 无法转换为 Comparable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23147283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com