コード例 #1
0
  public void visitProgramClass(ProgramClass programClass) {
    if (DEBUG) {
      System.out.println("SimpleEnumClassSimplifier: [" + programClass.getName() + "]");
    }

    // Unmark the class as an enum.
    programClass.u2accessFlags &= ~ClassConstants.ACC_ENUM;

    // Remove the valueOf method, if present.
    Method valueOfMethod = programClass.findMethod(ClassConstants.METHOD_NAME_VALUEOF, null);
    if (valueOfMethod != null) {
      new ClassEditor(programClass).removeMethod(valueOfMethod);
    }

    // Simplify the static initializer.
    programClass.methodAccept(
        ClassConstants.METHOD_NAME_CLINIT,
        ClassConstants.METHOD_TYPE_CLINIT,
        initializerSimplifier);
  }