类 MemberReferenceGeneralizer

  • 所有已实现的接口:
    proguard.classfile.constant.visitor.ConstantVisitor, proguard.classfile.instruction.visitor.InstructionVisitor, proguard.classfile.visitor.ClassVisitor

    public class MemberReferenceGeneralizer
    extends java.lang.Object
    implements proguard.classfile.instruction.visitor.InstructionVisitor, proguard.classfile.constant.visitor.ConstantVisitor, proguard.classfile.visitor.ClassVisitor
    This InstructionVisitor generalizes the classes referenced by the field/method invocation instructions that it visits. For example, it replaces invocations StringBuilder#toString() by Object#toString(), Integer#intValue() by Number#intValue(), Exception#printStackTrace() by Throwable#printStackTrace().
    • 构造器概要

      构造器 
      构造器 说明
      MemberReferenceGeneralizer​(boolean fieldGeneralizationClass, boolean methodGeneralizationClass, proguard.classfile.editor.CodeAttributeEditor codeAttributeEditor)
      Creates a new ReferenceGeneralizer.
      MemberReferenceGeneralizer​(boolean fieldGeneralizationClass, boolean methodGeneralizationClass, proguard.classfile.editor.CodeAttributeEditor codeAttributeEditor, proguard.classfile.instruction.visitor.InstructionVisitor extraFieldInstructionVisitor, proguard.classfile.instruction.visitor.InstructionVisitor extraMethodInstructionVisitor)
      Creates a new ReferenceGeneralizer.
    • 方法概要

      所有方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      void visitAnyClass​(proguard.classfile.Clazz clazz)  
      void visitAnyInstruction​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute, int offset, proguard.classfile.instruction.Instruction instruction)  
      void visitAnyRefConstant​(proguard.classfile.Clazz clazz, proguard.classfile.constant.RefConstant refConstant)  
      void visitClassConstant​(proguard.classfile.Clazz clazz, proguard.classfile.constant.ClassConstant classConstant)  
      void visitConstantInstruction​(proguard.classfile.Clazz clazz, proguard.classfile.Method method, proguard.classfile.attribute.CodeAttribute codeAttribute, int offset, proguard.classfile.instruction.ConstantInstruction constantInstruction)  
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • 从接口继承的方法 proguard.classfile.visitor.ClassVisitor

        visitLibraryClass, visitProgramClass
      • 从接口继承的方法 proguard.classfile.constant.visitor.ConstantVisitor

        visitAnyConstant, visitAnyMethodrefConstant, visitDoubleConstant, visitDynamicConstant, visitFieldrefConstant, visitFloatConstant, visitIntegerConstant, visitInterfaceMethodrefConstant, visitInvokeDynamicConstant, visitLongConstant, visitMethodHandleConstant, visitMethodrefConstant, visitMethodTypeConstant, visitModuleConstant, visitNameAndTypeConstant, visitPackageConstant, visitPrimitiveArrayConstant, visitStringConstant, visitUtf8Constant
      • 从接口继承的方法 proguard.classfile.instruction.visitor.InstructionVisitor

        visitAnySwitchInstruction, visitBranchInstruction, visitLookUpSwitchInstruction, visitSimpleInstruction, visitTableSwitchInstruction, visitVariableInstruction
    • 构造器详细资料

      • MemberReferenceGeneralizer

        public MemberReferenceGeneralizer​(boolean fieldGeneralizationClass,
                                          boolean methodGeneralizationClass,
                                          proguard.classfile.editor.CodeAttributeEditor codeAttributeEditor)
        Creates a new ReferenceGeneralizer.
        参数:
        fieldGeneralizationClass - specifies whether field classes should be generalized.
        methodGeneralizationClass - specifies whether method classes should be generalized.
        codeAttributeEditor - a code editor that can be used to accumulate changes to the code.
      • MemberReferenceGeneralizer

        public MemberReferenceGeneralizer​(boolean fieldGeneralizationClass,
                                          boolean methodGeneralizationClass,
                                          proguard.classfile.editor.CodeAttributeEditor codeAttributeEditor,
                                          proguard.classfile.instruction.visitor.InstructionVisitor extraFieldInstructionVisitor,
                                          proguard.classfile.instruction.visitor.InstructionVisitor extraMethodInstructionVisitor)
        Creates a new ReferenceGeneralizer.
        参数:
        fieldGeneralizationClass - specifies whether field classes should be generalized.
        methodGeneralizationClass - specifies whether method classes should be generalized.
        codeAttributeEditor - a code editor that can be used to accumulate changes to the code.
        extraFieldInstructionVisitor - an extra visitor for all field access instructions whose referenced classes have been generalized.
        extraMethodInstructionVisitor - an extra visitor for all method invocations instructions whose referenced classes have been generalized.
    • 方法详细资料

      • visitAnyInstruction

        public void visitAnyInstruction​(proguard.classfile.Clazz clazz,
                                        proguard.classfile.Method method,
                                        proguard.classfile.attribute.CodeAttribute codeAttribute,
                                        int offset,
                                        proguard.classfile.instruction.Instruction instruction)
        指定者:
        visitAnyInstruction 在接口中 proguard.classfile.instruction.visitor.InstructionVisitor
      • visitConstantInstruction

        public void visitConstantInstruction​(proguard.classfile.Clazz clazz,
                                             proguard.classfile.Method method,
                                             proguard.classfile.attribute.CodeAttribute codeAttribute,
                                             int offset,
                                             proguard.classfile.instruction.ConstantInstruction constantInstruction)
        指定者:
        visitConstantInstruction 在接口中 proguard.classfile.instruction.visitor.InstructionVisitor
      • visitAnyRefConstant

        public void visitAnyRefConstant​(proguard.classfile.Clazz clazz,
                                        proguard.classfile.constant.RefConstant refConstant)
        指定者:
        visitAnyRefConstant 在接口中 proguard.classfile.constant.visitor.ConstantVisitor
      • visitClassConstant

        public void visitClassConstant​(proguard.classfile.Clazz clazz,
                                       proguard.classfile.constant.ClassConstant classConstant)
        指定者:
        visitClassConstant 在接口中 proguard.classfile.constant.visitor.ConstantVisitor
      • visitAnyClass

        public void visitAnyClass​(proguard.classfile.Clazz clazz)
        指定者:
        visitAnyClass 在接口中 proguard.classfile.visitor.ClassVisitor