当前位置: 首页>>代码示例>>Java>>正文


Java MethodUtil类代码示例

本文整理汇总了Java中org.jf.dexlib2.util.MethodUtil的典型用法代码示例。如果您正苦于以下问题:Java MethodUtil类的具体用法?Java MethodUtil怎么用?Java MethodUtil使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


MethodUtil类属于org.jf.dexlib2.util包,在下文中一共展示了MethodUtil类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: ImmutableClassDef

import org.jf.dexlib2.util.MethodUtil; //导入依赖的package包/类
public ImmutableClassDef(@Nonnull String type,
                         int accessFlags,
                         @Nullable String superclass,
                         @Nullable Collection<String> interfaces,
                         @Nullable String sourceFile,
                         @Nullable Collection<? extends Annotation> annotations,
                         @Nullable Iterable<? extends Field> fields,
                         @Nullable Iterable<? extends Method> methods) {
    if (fields == null) {
        fields = ImmutableList.of();
    }
    if (methods == null) {
        methods = ImmutableList.of();
    }

    this.type = type;
    this.accessFlags = accessFlags;
    this.superclass = superclass;
    this.interfaces = interfaces==null ? ImmutableSet.<String>of() : ImmutableSet.copyOf(interfaces);
    this.sourceFile = sourceFile;
    this.annotations = ImmutableAnnotation.immutableSetOf(annotations);
    this.staticFields = ImmutableField.immutableSetOf(Iterables.filter(fields, FieldUtil.FIELD_IS_STATIC));
    this.instanceFields = ImmutableField.immutableSetOf(Iterables.filter(fields, FieldUtil.FIELD_IS_INSTANCE));
    this.directMethods = ImmutableMethod.immutableSetOf(Iterables.filter(methods, MethodUtil.METHOD_IS_DIRECT));
    this.virtualMethods = ImmutableMethod.immutableSetOf(Iterables.filter(methods, MethodUtil.METHOD_IS_VIRTUAL));
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:27,代码来源:ImmutableClassDef.java

示例2: BuilderClassDef

import org.jf.dexlib2.util.MethodUtil; //导入依赖的package包/类
BuilderClassDef(@Nonnull BuilderTypeReference type,
                int accessFlags,
                @Nullable BuilderTypeReference superclass,
                @Nonnull BuilderTypeList interfaces,
                @Nullable BuilderStringReference sourceFile,
                @Nonnull BuilderAnnotationSet annotations,
                @Nullable Iterable<? extends BuilderField> fields,
                @Nullable Iterable<? extends BuilderMethod> methods) {
    if (fields == null) {
        fields = ImmutableList.of();
    }
    if (methods == null) {
        methods = ImmutableList.of();
    }

    this.type = type;
    this.accessFlags = accessFlags;
    this.superclass = superclass;
    this.interfaces = interfaces;
    this.sourceFile = sourceFile;
    this.annotations = annotations;
    this.staticFields = ImmutableSortedSet.copyOf(Iterables.filter(fields, FieldUtil.FIELD_IS_STATIC));
    this.instanceFields = ImmutableSortedSet.copyOf(Iterables.filter(fields, FieldUtil.FIELD_IS_INSTANCE));
    this.directMethods = ImmutableSortedSet.copyOf(Iterables.filter(methods, MethodUtil.METHOD_IS_DIRECT));
    this.virtualMethods = ImmutableSortedSet.copyOf(Iterables.filter(methods, MethodUtil.METHOD_IS_VIRTUAL));
}
 
开发者ID:Miracle963,项目名称:zjdroid,代码行数:27,代码来源:BuilderClassDef.java

示例3: ImmutableClassDef

import org.jf.dexlib2.util.MethodUtil; //导入依赖的package包/类
public ImmutableClassDef( String type,
                         int accessFlags,
                          String superclass,
                          Collection<String> interfaces,
                          String sourceFile,
                          Collection<? extends Annotation> annotations,
                          Iterable<? extends Field> fields,
                          Iterable<? extends Method> methods) {
    if (fields == null) {
        fields = ImmutableList.of();
    }
    if (methods == null) {
        methods = ImmutableList.of();
    }

    this.type = type;
    this.accessFlags = accessFlags;
    this.superclass = superclass;
    this.interfaces = interfaces==null ? ImmutableList.<String>of() : ImmutableList.copyOf(interfaces);
    this.sourceFile = sourceFile;
    this.annotations = ImmutableAnnotation.immutableSetOf(annotations);
    this.staticFields = ImmutableField.immutableSetOf(Iterables.filter(fields, FieldUtil.FIELD_IS_STATIC));
    this.instanceFields = ImmutableField.immutableSetOf(Iterables.filter(fields, FieldUtil.FIELD_IS_INSTANCE));
    this.directMethods = ImmutableMethod.immutableSetOf(Iterables.filter(methods, MethodUtil.METHOD_IS_DIRECT));
    this.virtualMethods = ImmutableMethod.immutableSetOf(Iterables.filter(methods, MethodUtil.METHOD_IS_VIRTUAL));
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:27,代码来源:ImmutableClassDef.java

示例4: BuilderClassDef

import org.jf.dexlib2.util.MethodUtil; //导入依赖的package包/类
BuilderClassDef( BuilderTypeReference type,
                int accessFlags,
                 BuilderTypeReference superclass,
                 BuilderTypeList interfaces,
                 BuilderStringReference sourceFile,
                 BuilderAnnotationSet annotations,
                 Iterable<? extends BuilderField> fields,
                 Iterable<? extends BuilderMethod> methods) {
    if (fields == null) {
        fields = ImmutableList.of();
    }
    if (methods == null) {
        methods = ImmutableList.of();
    }

    this.type = type;
    this.accessFlags = accessFlags;
    this.superclass = superclass;
    this.interfaces = interfaces;
    this.sourceFile = sourceFile;
    this.annotations = annotations;
    this.staticFields = ImmutableSortedSet.copyOf(Iterables.filter(fields, FieldUtil.FIELD_IS_STATIC));
    this.instanceFields = ImmutableSortedSet.copyOf(Iterables.filter(fields, FieldUtil.FIELD_IS_INSTANCE));
    this.directMethods = ImmutableSortedSet.copyOf(Iterables.filter(methods, MethodUtil.METHOD_IS_DIRECT));
    this.virtualMethods = ImmutableSortedSet.copyOf(Iterables.filter(methods, MethodUtil.METHOD_IS_VIRTUAL));
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:27,代码来源:BuilderClassDef.java

示例5: canAccess

import org.jf.dexlib2.util.MethodUtil; //导入依赖的package包/类
public static boolean canAccess( TypeProto type,  Method virtualMethod, boolean checkPackagePrivate,
                                boolean checkProtected, boolean checkClass) {
    if (checkPackagePrivate && MethodUtil.isPackagePrivate(virtualMethod)) {
        String otherPackage = TypeUtils.getPackage(virtualMethod.getDefiningClass());
        String thisPackage = TypeUtils.getPackage(type.getType());
        if (!otherPackage.equals(thisPackage)) {
            return false;
        }
    }

    if (checkProtected && (virtualMethod.getAccessFlags() & AccessFlags.PROTECTED.getValue()) != 0) {
        if (!TypeProtoUtils.extendsFrom(type, virtualMethod.getDefiningClass())) {
            return false;
        }
    }

    if (checkClass) {
        ClassPath classPath = type.getClassPath();
        ClassDef methodClassDef = classPath.getClassDef(virtualMethod.getDefiningClass());
        if (!TypeUtils.canAccessClass(type.getType(), methodClassDef)) {
            return false;
        }
    }

    return true;
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:27,代码来源:AnalyzedMethodUtil.java

示例6: ImmutableClassDef

import org.jf.dexlib2.util.MethodUtil; //导入依赖的package包/类
public ImmutableClassDef(@Nonnull String type,
                         int accessFlags,
                         @Nullable String superclass,
                         @Nullable Collection<String> interfaces,
                         @Nullable String sourceFile,
                         @Nullable Collection<? extends Annotation> annotations,
                         @Nullable Iterable<? extends Field> fields,
                         @Nullable Iterable<? extends Method> methods) {
    if (fields == null) {
        fields = ImmutableList.of();
    }
    if (methods == null) {
        methods = ImmutableList.of();
    }

    this.type = type;
    this.accessFlags = accessFlags;
    this.superclass = superclass;
    this.interfaces = interfaces==null ? ImmutableList.<String>of() : ImmutableList.copyOf(interfaces);
    this.sourceFile = sourceFile;
    this.annotations = ImmutableAnnotation.immutableSetOf(annotations);
    this.staticFields = ImmutableField.immutableSetOf(Iterables.filter(fields, FieldUtil.FIELD_IS_STATIC));
    this.instanceFields = ImmutableField.immutableSetOf(Iterables.filter(fields, FieldUtil.FIELD_IS_INSTANCE));
    this.directMethods = ImmutableMethod.immutableSetOf(Iterables.filter(methods, MethodUtil.METHOD_IS_DIRECT));
    this.virtualMethods = ImmutableMethod.immutableSetOf(Iterables.filter(methods, MethodUtil.METHOD_IS_VIRTUAL));
}
 
开发者ID:johnlee175,项目名称:dex,代码行数:27,代码来源:ImmutableClassDef.java

示例7: canAccess

import org.jf.dexlib2.util.MethodUtil; //导入依赖的package包/类
public static boolean canAccess(@Nonnull TypeProto type, @Nonnull Method virtualMethod, boolean checkPackagePrivate,
                                boolean checkProtected, boolean checkClass) {
    if (checkPackagePrivate && MethodUtil.isPackagePrivate(virtualMethod)) {
        String otherPackage = TypeUtils.getPackage(virtualMethod.getDefiningClass());
        String thisPackage = TypeUtils.getPackage(type.getType());
        if (!otherPackage.equals(thisPackage)) {
            return false;
        }
    }

    if (checkProtected && (virtualMethod.getAccessFlags() & AccessFlags.PROTECTED.getValue()) != 0) {
        if (!TypeProtoUtils.extendsFrom(type, virtualMethod.getDefiningClass())) {
            return false;
        }
    }

    if (checkClass) {
        ClassPath classPath = type.getClassPath();
        ClassDef methodClassDef = classPath.getClassDef(virtualMethod.getDefiningClass());
        if (!TypeUtils.canAccessClass(type.getType(), methodClassDef)) {
            return false;
        }
    }

    return true;
}
 
开发者ID:johnlee175,项目名称:dex,代码行数:27,代码来源:AnalyzedMethodUtil.java

示例8: BasicClassDef

import org.jf.dexlib2.util.MethodUtil; //导入依赖的package包/类
public BasicClassDef(
		String type,
		int accessFlags,
		String superclass,
		List<String> interfaces,
		String sourceFile,
		Set<? extends Annotation> annotations,
		Iterable<? extends Field> fields,
		Iterable<? extends Method> methods
) {
	this.type = type;
	this.accessFlags = accessFlags;
	this.superclass = superclass;
	this.interfaces = interfaces;
	this.sourceFile = sourceFile;
	this.annotations = annotations;
	this.fields = fields;
	this.staticFields = Iterables.filter(fields, FieldUtil.FIELD_IS_STATIC);
	this.instanceFields = Iterables.filter(fields, FieldUtil.FIELD_IS_INSTANCE);
	this.methods = methods;
	this.directMethods = Iterables.filter(methods, MethodUtil.METHOD_IS_DIRECT);
	this.virtualMethods = Iterables.filter(methods, MethodUtil.METHOD_IS_VIRTUAL);
}
 
开发者ID:DexPatcher,项目名称:dexpatcher-tool,代码行数:24,代码来源:BasicClassDef.java

示例9: ImmutableClassDef

import org.jf.dexlib2.util.MethodUtil; //导入依赖的package包/类
public ImmutableClassDef(@Nonnull String type,
                         int accessFlags,
                         @Nullable String superclass,
                         @Nullable Collection<String> interfaces,
                         @Nullable String sourceFile,
                         @Nullable Collection<? extends Annotation> annotations,
                         @Nullable Iterable<? extends Field> fields,
                         @Nullable Iterable<? extends Method> methods) {
    if (fields == null) {
        fields = ImmutableList.of();
    }
    if (methods == null) {
        methods = ImmutableList.of();
    }

    this.type = type;
    this.accessFlags = accessFlags;
    this.superclass = superclass;
    this.interfaces = interfaces == null ? ImmutableSet.<String>of() : ImmutableSet.copyOf(interfaces);
    this.sourceFile = sourceFile;
    this.annotations = ImmutableAnnotation.immutableSetOf(annotations);
    this.staticFields = ImmutableField.immutableSetOf(Iterables.filter(fields, FieldUtil.FIELD_IS_STATIC));
    this.instanceFields = ImmutableField.immutableSetOf(Iterables.filter(fields, FieldUtil.FIELD_IS_INSTANCE));
    this.directMethods = ImmutableMethod.immutableSetOf(Iterables.filter(methods, MethodUtil.METHOD_IS_DIRECT));
    this.virtualMethods = ImmutableMethod.immutableSetOf(Iterables.filter(methods, MethodUtil.METHOD_IS_VIRTUAL));
}
 
开发者ID:niranjan94,项目名称:show-java,代码行数:27,代码来源:ImmutableClassDef.java

示例10: internProto

import org.jf.dexlib2.util.MethodUtil; //导入依赖的package包/类
@Nonnull
public BuilderProtoReference internProto(@Nonnull List<? extends CharSequence> parameters,
                                         @Nonnull String returnType) {
    ProtoKey key = new Key(parameters, returnType);
    BuilderProtoReference ret = internedItems.get(key);
    if (ret != null) {
        return ret;
    }

    BuilderProtoReference protoReference = new BuilderProtoReference(
            context.stringPool.internString(MethodUtil.getShorty(parameters, returnType)),
            context.typeListPool.internTypeList(parameters),
            context.typePool.internType(returnType));
    ret = internedItems.putIfAbsent(protoReference, protoReference);
    return ret == null ? protoReference : ret;
}
 
开发者ID:niranjan94,项目名称:show-java,代码行数:17,代码来源:BuilderProtoPool.java

示例11: BuilderClassDef

import org.jf.dexlib2.util.MethodUtil; //导入依赖的package包/类
public BuilderClassDef(@Nonnull BuilderTypeReference type,
                int accessFlags,
                @Nullable BuilderTypeReference superclass,
                @Nonnull BuilderTypeList interfaces,
                @Nullable BuilderStringReference sourceFile,
                @Nonnull BuilderAnnotationSet annotations,
                @Nullable Iterable<? extends BuilderField> fields,
                @Nullable Iterable<? extends BuilderMethod> methods) {
    if (fields == null) {
        fields = ImmutableList.of();
    }
    if (methods == null) {
        methods = ImmutableList.of();
    }

    this.type = type;
    this.accessFlags = accessFlags;
    this.superclass = superclass;
    this.interfaces = interfaces;
    this.sourceFile = sourceFile;
    this.annotations = annotations;
    this.staticFields = ImmutableSortedSet.copyOf(
            (Iterable<? extends BuilderField>)Iterables.filter(fields, FieldUtil.FIELD_IS_STATIC));
    this.instanceFields = ImmutableSortedSet.copyOf(
            (Iterable<? extends BuilderField>)Iterables.filter(fields, FieldUtil.FIELD_IS_INSTANCE));
    this.directMethods = ImmutableSortedSet.copyOf(
            (Iterable<? extends BuilderMethod>)Iterables.filter(methods, MethodUtil.METHOD_IS_DIRECT));
    this.virtualMethods = ImmutableSortedSet.copyOf(
            (Iterable<? extends BuilderMethod>)Iterables.filter(methods, MethodUtil.METHOD_IS_VIRTUAL));
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:31,代码来源:BuilderClassDef.java

示例12: internProto

import org.jf.dexlib2.util.MethodUtil; //导入依赖的package包/类
@Nonnull public BuilderProtoReference internProto(@Nonnull List<? extends CharSequence> parameters,
                                                  @Nonnull String returnType) {
    ProtoKey key = new Key(parameters, returnType);
    BuilderProtoReference ret = internedItems.get(key);
    if (ret != null) {
        return ret;
    }

    BuilderProtoReference protoReference = new BuilderProtoReference(
            context.stringPool.internString(MethodUtil.getShorty(parameters, returnType)),
            context.typeListPool.internTypeList(parameters),
            context.typePool.internType(returnType));
    ret = internedItems.putIfAbsent(protoReference, protoReference);
    return ret==null?protoReference:ret;
}
 
开发者ID:CvvT,项目名称:andbg,代码行数:16,代码来源:BuilderProtoPool.java

示例13: internMethodProto

import org.jf.dexlib2.util.MethodUtil; //导入依赖的package包/类
public BuilderMethodProtoReference internMethodProto( MethodProtoReference methodProto) {
    BuilderMethodProtoReference ret = internedItems.get(methodProto);
    if (ret != null) {
        return ret;
    }

    BuilderMethodProtoReference protoReference = new BuilderMethodProtoReference(
            dexBuilder.stringSection.internString(MethodUtil.getShorty(
                    methodProto.getParameterTypes(), methodProto.getReturnType())),
            dexBuilder.typeListSection.internTypeList(methodProto.getParameterTypes()),
            dexBuilder.typeSection.internType(methodProto.getReturnType()));
    ret = internedItems.putIfAbsent(protoReference, protoReference);
    return ret==null?protoReference:ret;
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:15,代码来源:BuilderProtoPool.java

示例14: findMethodIndexInVtable

import org.jf.dexlib2.util.MethodUtil; //导入依赖的package包/类
private int findMethodIndexInVtable( List<Method> vtable, MethodReference method) {
    for (int i=0; i<vtable.size(); i++) {
        Method candidate = vtable.get(i);
        if (MethodUtil.methodSignaturesMatch(candidate, method)) {
            if (!classPath.shouldCheckPackagePrivateAccess() ||
                    AnalyzedMethodUtil.canAccess(this, candidate, true, false, false)) {
                return i;
            }
        }
    }
    return -1;
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:13,代码来源:ClassProto.java

示例15: findMethodIndexInVtableReverse

import org.jf.dexlib2.util.MethodUtil; //导入依赖的package包/类
private int findMethodIndexInVtableReverse( List<Method> vtable, MethodReference method) {
    for (int i=vtable.size() - 1; i>=0; i--) {
        Method candidate = vtable.get(i);
        if (MethodUtil.methodSignaturesMatch(candidate, method)) {
            if (!classPath.shouldCheckPackagePrivateAccess() ||
                    AnalyzedMethodUtil.canAccess(this, candidate, true, false, false)) {
                return i;
            }
        }
    }
    return -1;
}
 
开发者ID:AndreJCL,项目名称:JCL,代码行数:13,代码来源:ClassProto.java


注:本文中的org.jf.dexlib2.util.MethodUtil类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。