本文整理了Java中org.jf.dexlib2.iface.Method.getDefiningClass()
方法的一些代码示例,展示了Method.getDefiningClass()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Method.getDefiningClass()
方法的具体详情如下:
包路径:org.jf.dexlib2.iface.Method
类名称:Method
方法名:getDefiningClass
[英]Gets the type of the class that defines this method.
[中]获取定义此方法的类的类型。
代码示例来源:origin: JesusFreke/smali
/**
* Checks if the interface method overrides the virtual or interface method2
* @param method A Method from an interface
* @param method2 A Method from an interface or a class
* @return true if the interface method overrides the virtual or interface method2
*/
private boolean interfaceMethodOverrides(@Nonnull Method method, @Nonnull Method method2) {
ClassProto classProto = (ClassProto)classPath.getClass(method2.getDefiningClass());
if (classProto.isInterface()) {
ClassProto targetClassProto = (ClassProto)classPath.getClass(method.getDefiningClass());
return targetClassProto.implementsInterface(method2.getDefiningClass());
} else {
return false;
}
}
代码示例来源:origin: JesusFreke/smali
private boolean isOverridableByDefaultMethod(@Nonnull Method method) {
ClassProto classProto = (ClassProto)classPath.getClass(method.getDefiningClass());
return classProto.isInterface();
}
代码示例来源:origin: JesusFreke/smali
if (!AccessFlags.ABSTRACT.isSet(interfaceMethod.getAccessFlags())) {
ClassProto existingInterface = (ClassProto)classPath.getClass(
defaultMethods.get(defaultMethodIndex).getDefiningClass());
if (!existingInterface.implementsInterface(interfaceMethod.getDefiningClass())) {
Method removedMethod = defaultMethods.remove(defaultMethodIndex);
defaultConflictMethods.add(removedMethod);
mirandaMethods.get(mirandaMethodIndex).getDefiningClass());
if (!existingInterface.implementsInterface(interfaceMethod.getDefiningClass())) {
Method oldMethod = mirandaMethods.remove(mirandaMethodIndex);
int methodOrderValue = methodOrder.get(oldMethod);
代码示例来源:origin: JesusFreke/smali
if (!AccessFlags.ABSTRACT.isSet(interfaceMethod.getAccessFlags())) {
ClassProto existingInterface = (ClassProto)classPath.getClass(
defaultMethods.get(defaultMethodIndex).getDefiningClass());
if (!existingInterface.implementsInterface(interfaceMethod.getDefiningClass())) {
Method removedMethod = defaultMethods.remove(defaultMethodIndex);
defaultConflictMethods.add(removedMethod);
mirandaMethods.get(mirandaMethodIndex).getDefiningClass());
if (!existingInterface.implementsInterface(interfaceMethod.getDefiningClass())) {
Method oldMethod = mirandaMethods.remove(mirandaMethodIndex);
int methodOrderValue = methodOrder.get(oldMethod);
代码示例来源:origin: JesusFreke/smali
ClassProto thisClass = (ClassProto)classPath.getClass(method.getDefiningClass());
代码示例来源:origin: Tencent/tinker
method.getDefiningClass(),
method.getName(),
method.getParameters(),
代码示例来源:origin: JesusFreke/smali
setPostRegisterTypeAndPropagateChanges(startOfMethod, thisRegister,
RegisterType.getRegisterType(RegisterType.UNINIT_THIS,
classPath.getClass(method.getDefiningClass())));
} else {
setPostRegisterTypeAndPropagateChanges(startOfMethod, thisRegister,
RegisterType.getRegisterType(RegisterType.REFERENCE,
classPath.getClass(method.getDefiningClass())));
代码示例来源:origin: JesusFreke/smali
containingClass = method.getDefiningClass();
代码示例来源:origin: JesusFreke/smali
public static void writeEmptyMethodTo(IndentingWriter writer, Method method,
BaksmaliOptions options) throws IOException {
writer.write(".method ");
writeAccessFlags(writer, method.getAccessFlags());
writer.write(method.getName());
writer.write("(");
ImmutableList<MethodParameter> methodParameters = ImmutableList.copyOf(method.getParameters());
for (MethodParameter parameter: methodParameters) {
writer.write(parameter.getType());
}
writer.write(")");
writer.write(method.getReturnType());
writer.write('\n');
writer.indent(4);
writeParameters(writer, method, methodParameters, options);
String containingClass = null;
if (options.implicitReferences) {
containingClass = method.getDefiningClass();
}
AnnotationFormatter.writeTo(writer, method.getAnnotations(), containingClass);
writer.deindent(4);
writer.write(".end method\n");
}
代码示例来源:origin: JesusFreke/smali
if (isSuper) {
TypeProto typeProto = classPath.getClass(method.getDefiningClass());
TypeProto superType;
ClassDef thisClass = classPath.getClassDef(method.getDefiningClass());
代码示例来源:origin: JesusFreke/smali
ClassDef thisClass = classPath.getClassDef(method.getDefiningClass());
代码示例来源:origin: JesusFreke/smali
containingClass = method.getDefiningClass();
代码示例来源:origin: org.smali/dexlib2
@Override @Nonnull public String getDefiningClass() {
return method.getDefiningClass();
}
代码示例来源:origin: org.smali/dexlib2
private boolean isOverridableByDefaultMethod(@Nonnull Method method) {
ClassProto classProto = (ClassProto)classPath.getClass(method.getDefiningClass());
return classProto.isInterface();
}
代码示例来源:origin: TACIXAT/CFGScanDroid
public ControlFlowGraph(Method method) {
this(getFlatMethod(method));
String definingClass = method.getDefiningClass();
this.identifier = definingClass + "." + method.getName() + "()" + method.getReturnType();
// this.identifier = definingClass.substring(definingClass.lastIndexOf("/")+1) + method.getName() + "(" + method.getReturnType() + ")";
this.identifier = this.identifier.replace(";", "");
this.shortIdentifier = identifier.substring(definingClass.lastIndexOf("/")+1);
}
代码示例来源:origin: JesusFreke/smali
final String classContext;
if (methodDef.classDef.options.implicitReferences) {
classContext = methodDef.method.getDefiningClass();
} else {
classContext = null;
代码示例来源:origin: KB5201314/ZjDroid
private boolean canAccess(@Nonnull Method virtualMethod) {
if (!methodIsPackagePrivate(virtualMethod.getAccessFlags())) {
return true;
}
String otherPackage = getPackage(virtualMethod.getDefiningClass());
String ourPackage = getPackage(getClassDef().getType());
return otherPackage.equals(ourPackage);
}
代码示例来源:origin: com.taobao.android/dex_patch
private static MethodImplementation modifyMethodAndFix(@Nonnull MethodImplementation implementation, Method method) {
MutableMethodImplementation mutableImplementation = new MutableMethodImplementation(implementation);
System.out.println(mutableImplementation.getRegisterCount());
List<BuilderInstruction> instructions = mutableImplementation.getInstructions();
mutableImplementation.addInstruction(0,
new BuilderInstruction21c(Opcode.CONST_STRING, 0,
new ImmutableStringReference("AndFix:" + method.getDefiningClass().replace("/", "."))));
mutableImplementation.addInstruction(1,
new BuilderInstruction35c(Opcode.INVOKE_STATIC, 1,
0, 0, 0, 0, 0,
new ImmutableMethodReference("Landroid/util/Log;", "e",
Lists.newArrayList("Ljava/lang/String;", "Ljava/lang/String;"), "I")));
return mutableImplementation;
}
代码示例来源:origin: testwhat/SmaliEx
public static ImmutableMethod of(Method method) {
if (method instanceof ImmutableMethod) {
return (ImmutableMethod)method;
}
return new ImmutableMethod(
method.getDefiningClass(),
method.getName(),
method.getParameters(),
method.getReturnType(),
method.getAccessFlags(),
method.getAnnotations(),
method.getImplementation());
}
代码示例来源:origin: KB5201314/ZjDroid
public static ImmutableMethod of(Method method) {
if (method instanceof ImmutableMethod) {
return (ImmutableMethod)method;
}
return new ImmutableMethod(
method.getDefiningClass(),
method.getName(),
method.getParameters(),
method.getReturnType(),
method.getAccessFlags(),
method.getAnnotations(),
method.getImplementation());
}
内容来源于网络,如有侵权,请联系作者删除!