本文整理了Java中org.jf.dexlib2.iface.Method.getParameters()
方法的一些代码示例,展示了Method.getParameters()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Method.getParameters()
方法的具体详情如下:
包路径:org.jf.dexlib2.iface.Method
类名称:Method
方法名:getParameters
[英]Gets a list of the parameters of this method. As per the MethodReference interface, the MethodParameter objects contained in the returned list also act as a simple reference to the type of the parameter. However, the MethodParameter object can also contain additional information about the parameter. Note: In some implementations, the returned list is likely to not provide efficient random access.
[中]获取此方法的参数列表。根据MethodReference接口,返回列表中包含的MethodParameter对象还充当参数类型的简单引用。但是,MethodParameter对象还可以包含有关该参数的其他信息。注意:在某些实现中,返回的列表可能不提供有效的随机访问。
代码示例来源:origin: JesusFreke/smali
@Nonnull @Override public List<? extends MethodParameter> getParameters() {
return method.getParameters();
}
代码示例来源:origin: Sable/soot
protected List<Type> getParameterTypes(final Method method) {
// retrieve all parameter types
List<Type> parameterTypes = new ArrayList<Type>();
if (method.getParameters() != null) {
List<? extends CharSequence> parameters = method.getParameterTypes();
for (CharSequence t : parameters) {
Type type = DexType.toSoot(t.toString());
parameterTypes.add(type);
}
}
return parameterTypes;
}
代码示例来源:origin: Sable/soot
tries = code.getTryBlocks();
List<? extends MethodParameter> parameters = method.getParameters();
if (parameters != null) {
parameterNames = new ArrayList<String>();
parameterTypes = new ArrayList<Type>();
for (MethodParameter param : method.getParameters()) {
parameterNames.add(param.getName());
parameterTypes.add(DexType.toSoot(param.getType()));
代码示例来源:origin: Tencent/tinker
method.getDefiningClass(),
method.getName(),
method.getParameters(),
method.getReturnType(),
method.getAccessFlags(),
代码示例来源:origin: JesusFreke/smali
private void propagateParameterTypes(int parameterStartRegister) {
int i=0;
for (MethodParameter parameter: method.getParameters()) {
if (TypeUtils.isWideType(parameter)) {
setPostRegisterTypeAndPropagateChanges(startOfMethod, parameterStartRegister + i++,
RegisterType.getWideRegisterType(parameter, true));
setPostRegisterTypeAndPropagateChanges(startOfMethod, parameterStartRegister + i++,
RegisterType.getWideRegisterType(parameter, false));
} else {
setPostRegisterTypeAndPropagateChanges(startOfMethod, parameterStartRegister + i++,
RegisterType.getRegisterType(classPath, parameter));
}
}
}
代码示例来源:origin: JesusFreke/smali
methodParameters = ImmutableList.copyOf(method.getParameters());
代码示例来源:origin: Sable/soot
for (MethodParameter p : method.getParameters()) {
String name = p.getName();
if (name != null) {
parameterNames = new String[method.getParameters().size()];
parameterNames[i] = name;
List<? extends MethodParameter> parameters = method.getParameters();
for (MethodParameter p : parameters) {
if (p.getAnnotations().size() > 0) {
代码示例来源:origin: JesusFreke/smali
private void internDebug(@Nonnull Method method) {
for (MethodParameter param: method.getParameters()) {
String paramName = param.getName();
if (paramName != null) {
dexPool.stringSection.intern(paramName);
}
}
MethodImplementation methodImpl = method.getImplementation();
if (methodImpl != null) {
for (DebugItem debugItem: methodImpl.getDebugItems()) {
switch (debugItem.getDebugItemType()) {
case DebugItemType.START_LOCAL:
StartLocal startLocal = (StartLocal)debugItem;
dexPool.stringSection.internNullable(startLocal.getName());
dexPool.typeSection.internNullable(startLocal.getType());
dexPool.stringSection.internNullable(startLocal.getSignature());
break;
case DebugItemType.SET_SOURCE_FILE:
dexPool.stringSection.internNullable(((SetSourceFile) debugItem).getSourceFile());
break;
}
}
}
}
代码示例来源: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: KB5201314/ZjDroid
@Override @Nonnull public List<? extends MethodParameter> getParameters() {
return method.getParameters();
}
代码示例来源:origin: testwhat/SmaliEx
@Override @Nonnull public List<? extends MethodParameter> getParameters() {
return method.getParameters();
}
代码示例来源:origin: KB5201314/ZjDroid
private boolean methodSignaturesMatch(@Nonnull Method a, @Nonnull Method b) {
return (a.getName().equals(b.getName()) &&
a.getReturnType().equals(b.getReturnType()) &&
a.getParameters().equals(b.getParameters()));
}
代码示例来源:origin: org.smali/dexlib2
@Override @Nonnull public List<? extends MethodParameter> getParameters() {
// We can't use the MethodReferenceRewriter to rewrite the parameters, because we would lose
// parameter names and annotations. If a method rewrite involves changing parameters, it needs
// to be handled here as well as in the MethodReferenceRewriter
return RewriterUtils.rewriteList(rewriters.getMethodParameterRewriter(), method.getParameters());
}
代码示例来源:origin: testwhat/SmaliEx
@Override @Nonnull public List<? extends MethodParameter> getParameters() {
// We can't use the MethodReferenceRewriter to rewrite the parameters, because we would lose
// parameter names and annotations. If a method rewrite involves changing parameters, it needs
// to be handled here as well as in the MethodReferenceRewriter
return RewriterUtils.rewriteList(rewriters.getMethodParameterRewriter(), method.getParameters());
}
代码示例来源:origin: KB5201314/ZjDroid
@Override @Nonnull public List<? extends MethodParameter> getParameters() {
// We can't use the MethodReferenceRewriter to rewrite the parameters, because we would lose
// parameter names and annotations. If a method rewrite involves changing parameters, it needs
// to be handled here as well as in the MethodReferenceRewriter
return RewriterUtils.rewriteList(rewriters.getMethodParameterRewriter(), method.getParameters());
}
代码示例来源:origin: wala/WALA
Map<Integer,List<Annotation>> getParameterAnnotations(Method m) {
Map<Integer,List<Annotation>> result = HashMapFactory.make();
int i = 0;
for(MethodParameter as : m.getParameters()) {
for(org.jf.dexlib2.iface.Annotation a : as.getAnnotations()) {
if (! result.containsKey(i)) {
result.put(i, new ArrayList<Annotation>());
}
result.get(i).add(DexUtil.getAnnotation(a, getClassLoader().getReference()));
}
i++;
}
return result;
}
代码示例来源:origin: com.ibm.wala/com.ibm.wala.dalvik
Map<Integer,List<Annotation>> getParameterAnnotations(Method m) {
Map<Integer,List<Annotation>> result = HashMapFactory.make();
int i = 0;
for(MethodParameter as : m.getParameters()) {
for(org.jf.dexlib2.iface.Annotation a : as.getAnnotations()) {
if (! result.containsKey(i)) {
result.put(i, new ArrayList<Annotation>());
}
result.get(i).add(DexUtil.getAnnotation(a, getClassLoader().getReference()));
}
i++;
}
return result;
}
代码示例来源: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());
}
代码示例来源:origin: org.smali/dexlib2
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());
}
内容来源于网络,如有侵权,请联系作者删除!