【发布时间】:2018-01-08 19:24:44
【问题描述】:
我尝试编写一个泛型类来比较具有相同类型的两个对象。班级应该让我成为两者中最小的。我的代码不起作用。
public class compare < T > {
private T type1;
private T type2;
public compare(T type1, T type2) {
this.type1 = type1;
this.type2 = type2;
}
public T getSmallest() {
if (type1 > type2) {
return type2;
} else if (type1 == type2) {
return 0;
} else {
return type1;
}
}
}
【问题讨论】:
-
你的代码很差,所以不,它不会工作。喜欢
getSmallest()返回0或T。你不能像那样返回不同的类型。 -
欢迎来到 Stack Overflow!请拿起tour,环顾四周,并通读help center,尤其是How do I ask a good question? 和What topics can I ask about here?。请阅读并关注Java Naming Conventions
-
您需要确认
T extends Comparable<? super T>并致电type1.compareTo(type2)。 -
您不能使用
>和==等运算符比较 对象。有一个接口来定义对象的自然顺序,即Comparable让您的对象实现此接口并使用compareTo()方法找到较小的对象。不需要泛型。
标签: java object generics compare