Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Classes cannot directly extend java.lang.Enum

Tags:

java

I am getting the error classes cannot directly extends java.lang.enum in my following code

public final class ConversionMode extends Enum
{

public static final ConversionMode TO_XLIFF;
public static final ConversionMode FROM_XLIFF;
private static final ConversionMode $VALUES[];

public static final ConversionMode[] values()
{
    return (ConversionMode[])$VALUES.clone();
}

public static ConversionMode valueOf(String s)
{
    return (ConversionMode)Enum.valueOf(file2xliff4j/ConversionMode, s);
}

private ConversionMode(String s, int i)
{
    super(s, i);
}

static 
{
    TO_XLIFF = new ConversionMode("TO_XLIFF", 0);
    FROM_XLIFF = new ConversionMode("FROM_XLIFF", 1);
    $VALUES = (new ConversionMode[] {
        TO_XLIFF, FROM_XLIFF
    });
}
}

I also refer this link, but I am getting it properly so please give me the solution what I need to do?

like image 836
Aditya Avatar asked Sep 10 '26 07:09

Aditya


2 Answers

That's not how you create an enum in Java. Here's how you do it:

public enum ConversionMode {
    TO_XLIFF,
    FROM_XLIFF
}

That's all. The values(), valueOf(), ordinal() and other enum methods are implemented for you.

As always in Java, there is a tutorial about enums.

like image 110
JB Nizet Avatar answered Sep 12 '26 20:09

JB Nizet


No you cannot extends ENUM

JLS#8.9

An enum type is implicitly final unless it contains at least one enum constant that has a class body.

Example

enum Color {
    RED, GREEN, BLUE;

}

If you see the Language Specification, a complete example is there how to use Enum and getting values etc ...

like image 39
Suresh Atta Avatar answered Sep 12 '26 19:09

Suresh Atta