gpt4 book ai didi

java - 比较通用 T 对象

转载 作者:行者123 更新时间:2023-11-30 04:00:04 25 4
gpt4 key购买 nike

我正在制作一个使用 T 作为主要参数的泛型类。我需要对一些 T 进行排序,但要做到这一点,我需要实现一个通用的compareTo。我一直在寻找如何做到这一点。我知道如何实现类似的东西

  public class Foo implements Comparable {
private int age;
public Foo (int age) {
this.age = age;
}
public int compareTo(Foo a) {
if (age < a.age) {
return -1;
}
if (age == a.age) {
return 0;
}
if (age > a.age) {
return 1;
} else {
return 0;
}
}
}

但是当我尝试比较两个通用对象时我迷失了(例如,如果 T 是整数,它比较整数,如果 T 是字符串,它比较字符串)。基本上是这样的:

  T.compareTo(T) 

我知道这可能是一个我忽略的简单解决方案,但我不明白,因为没有可以比较的变量。

最佳答案

使用具有泛型类型参数的 Comparable 泛型形式,而不是没有任何类型参数的 Comparable 原始形式。将 Foo 对象与其他 Foo 对象进行比较是有意义的。我不会使用泛型类型参数;我只需提供 Foo 作为 Comparable 上的类型参数。

尝试

public class Foo implements Comparable<Foo> {

那么您的 compareTo 方法应该可以工作。

关于java - 比较通用 T 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22186654/

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