fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. interface I {}
  11. enum Hoge implements I {
  12.  
  13. FOO,
  14.  
  15. BAR {
  16. @Override
  17. public String toString() {
  18. return "bar";
  19. }
  20. }
  21. }
  22.  
  23. public static void main(String[] args) {
  24. log(Hoge.FOO);
  25. log(Hoge.BAR);
  26. log(new I(){});
  27. }
  28.  
  29. static void log(I constant) {
  30.  
  31. boolean isEnum = constant instanceof Enum;
  32.  
  33. Class<?> clazz = isEnum ? ((Enum<?>)constant).getDeclaringClass() : constant.getClass();
  34. String fqcn = clazz.getName();
  35.  
  36. System.out.printf("%s: class=%s, enum=%s%n", constant, fqcn, isEnum);
  37. }
  38. }
Success #stdin #stdout 0.11s 320512KB
stdin
Standard input is empty
stdout
FOO: class=Ideone$Hoge, enum=true
bar: class=Ideone$Hoge, enum=true
Ideone$1@647e05: class=Ideone$1, enum=false