1
0

More than 1 year has passed since last update.

enum

Last updated at Posted at 2023-01-11

Enum classのsub classとなる
each elementがjvmによりinstance化される
enumを参照した時点でenumの各要素がconstructorを通してインスタンス化される
default toString()はあくまでenumの要素名(PAN,GOHAN)をreturnする。
valueをreturnしたいときはtoString()をoverrideする。

enum EnumSample{
    PAN("hello-pan"),GOHAN("hello-gohan");
    String value;
    private EnumSample(String value) {
      System.out.println(value);
      this.value = value;
    }
}
enum EnumSample2 {
    APPLE(),ORANGE();
}
enum EnumSample3{
    PAN("hello-pan"),GOHAN("hello-gohan");
    String value;
    private EnumSample3(String value) {
      this.value = value;
    }
    public String toString() {
      return value;
    }
}

public class SampleProject {
    public static void main(String[] args) {
      System.out.println("------------------");
      System.out.println(EnumSample.PAN);
      System.out.println(EnumSample2.ORANGE);
      System.out.println(EnumSample3.PAN);
      Enum e = EnumSample2.valueOf("APPLE");
      System.out.println(e);
      System.out.println("------------------------------");
      Method m[] = e.getClass().getMethods();
      for(Method mc:m){
          System.out.println(mc);
      }
      System.out.println("------------------------------");
      System.out.println(EnumSample2.values()[0]);
      System.out.println(String.valueOf(EnumSample3.values()[0]));
    }
}
------------------
hello-pan
hello-gohan
PAN
ORANGE
hello-pan
APPLE
------------------------------
public static sampleproject.EnumSample2[] sampleproject.EnumSample2.values()
public static sampleproject.EnumSample2 sampleproject.EnumSample2.valueOf(java.lang.String)
public final java.lang.String java.lang.Enum.name()
public final boolean java.lang.Enum.equals(java.lang.Object)
public java.lang.String java.lang.Enum.toString()
public final int java.lang.Enum.hashCode()
public int java.lang.Enum.compareTo(java.lang.Object)
public final int java.lang.Enum.compareTo(java.lang.Enum)
public static java.lang.Enum java.lang.Enum.valueOf(java.lang.Class,java.lang.String)
public final java.lang.Class java.lang.Enum.getDeclaringClass()
public final int java.lang.Enum.ordinal()
public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException
public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException
public final void java.lang.Object.wait() throws java.lang.InterruptedException
public final native java.lang.Class java.lang.Object.getClass()
public final native void java.lang.Object.notify()
public final native void java.lang.Object.notifyAll()
------------------------------
APPLE
hello-pan
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0