Enum in a separate class

Is it still necessary to put this test in a separate class? I tried, but was unsuccessful.

public class TrafficLightprj 
{
    public enum TrafficLight 
    {  
        RED(1),  
        GREEN(2),  
        YELLOW(3);

        private final int duration; 

        TrafficLight(int duration) { 
            this.duration = duration; 
        }  

        public int getDuration() { 
            return this.duration; 
        } 


        public static void main(String[] args) 
        {
            for(TrafficLight light: TrafficLight.values())
            {
               System.out.println("The traffic light value is: " +light);
               System.out.println("The duration of that trafic light value is: " + light.getDuration());
            }
        }   
    }
}
+3
source share
4 answers

I'm not sure I understand what you mean in your question, so I will answer what I think you are asking.

Enum can be a native file in Java. For example, you might have a TrafficLight file that is inside:

public enum TrafficLight {  
    RED(1),  
    GREEN(2),  
    YELLOW(3);

    private final int duration; 

    TrafficLight(int duration) { 
        this.duration = duration; 
    }  

    public int getDuration() { 
        return this.duration; 
    } 
}

Then you can use this enumeration from your test project (TrafficLightPrj.java). For instance:

public class TrafficLightprj {

    public static void main(String[] args) {
        for(TrafficLight light: TrafficLight.values()) {
            System.out.println("The traffic light value is: " +light);
            System.out.println("The duration of that trafic light value is: " +light.getDuration());
        }
    }
}
+13
source

You need to put it in another .java file. You cannot have more than one open class / enum in a single .java file.

TrafficLightprj.java

public class TrafficLightprj {

    public static void main(String[] args) {
        for(TrafficLight light: TrafficLight.values()){
            System.out.println("The traffic light value is: " +light);
            System.out.println("The duration of that trafic light value is: "  +light.getDuration());
        }
    }
}

TrafficLight.java

public enum TrafficLight {  
    RED(1),  
    GREEN(2),  
    YELLOW(3);

    private final int duration; 

    TrafficLight(int duration) { 
        this.duration = duration; 
    }  

    public int getDuration() { 
        return this.duration; 
    }
} 
+2
source

, enum. TrafficLightprj.TrafficLight TrafficLight. , , .

.

+1

Assuming your question is: "How do I get a nested enum in another source file?"

This is possible with partial classes, but this one is not supported in java .

0
source

All Articles