Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在枚举中使用compareTo_Java_Enums_Compareto - Fatal编程技术网

Java 在枚举中使用compareTo

Java 在枚举中使用compareTo,java,enums,compareto,Java,Enums,Compareto,我看过这段代码,但我不确定它是如何与compareTo一起工作的。 有人能告诉我它是如何工作的吗 public enum Test { POTATO("Potato"), TOMATO("Tomato"), CARROT("Carrot") public String Name; private Test(String name) { this.Name = name; } public boolean testF

我看过这段代码,但我不确定它是如何与compareTo一起工作的。 有人能告诉我它是如何工作的吗

public enum Test
{
    POTATO("Potato"), 
    TOMATO("Tomato"), 
    CARROT("Carrot")

    public String Name;

    private Test(String name) {
        this.Name = name;
    }

    public boolean testFor(Test t)
    {
        if (compareTo(t) <= 0) {
            return true;
        }
        return false;
    }
}
公共枚举测试
{
马铃薯(“马铃薯”),
西红柿(“西红柿”),
胡萝卜(“胡萝卜”)
公共字符串名称;
专用测试(字符串名称){
this.Name=Name;
}
公共布尔testFor(testt)
{

if(compareTo)(t)枚举值按创建顺序进行比较。因此
POTATO
小于
CARROT
,因为
POTATO
的顺序小于
CARROT

举几个例子:

Test.POTATO.compareTo(Test.TOMATO); // returns -1, is less
Test.POTATO.compareTo(Test.POTATO); // returns 0, is equal
Test.CARROT.compareTo(Test.POTATO); // returns 2, is bigger

compareToEnum抽象类的最终方法


compareTo(EO):将此枚举与指定的对象进行顺序比较。

阅读您拥有的示例,它们必须在枚举中,还是可以在任何类中?只要导入
测试
,就可以从任何类中调用它们。如果要使用
compareTo(T)
在另一个类中,您必须实现
Compariable
接口。它允许您为类指定自然顺序。请参阅: