本文整理了Java中org.objectweb.asm.Type.getArgumentTypes()
方法的一些代码示例,展示了Type.getArgumentTypes()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Type.getArgumentTypes()
方法的具体详情如下:
包路径:org.objectweb.asm.Type
类名称:Type
方法名:getArgumentTypes
[英]Returns the argument types of methods of this type. This method should only be used for method types.
[中]返回此类型方法的参数类型。此方法只能用于方法类型。
代码示例来源:origin: cglib/cglib
public Type[] getArgumentTypes() {
return Type.getArgumentTypes(desc);
}
代码示例来源:origin: scouter-project/scouter
public PsSetMV(int access, String name, String desc, MethodVisitor mv, String owner) {
super(ASM7,access, desc, mv);
this.owner = owner;
this.args = Type.getArgumentTypes(desc);
this.name = name;
}
代码示例来源:origin: alibaba/jvm-sandbox
/**
* Creates a new {@link AdviceAdapter}.
*
* @param api the ASM API version implemented by this visitor. Must be one
* of {@link Opcodes#ASM4} or {@link Opcodes#ASM7}.
* @param mv the method visitor to which this adapter delegates calls.
* @param access the method's access flags (see {@link Opcodes}).
* @param name the method's name.
* @param desc the method's descriptor (see {@link Type Type}).
*/
protected ReWriteMethod(int api, MethodVisitor mv, int access, String name, String desc) {
super(api, mv, access, name, desc);
this.argumentTypeArray = Type.getArgumentTypes(desc);
}
代码示例来源:origin: robolectric/robolectric
/** Create a MethodInfo from ASM in-memory representation (an Android framework method). */
public MethodInfo(MethodNode method) {
this.name = method.name;
for (Type type : Type.getArgumentTypes(method.desc)) {
paramTypes.add(normalize(type));
}
}
代码示例来源:origin: org.ow2.asm/asm
/**
* Returns the argument types of methods of this type. This method should only be used for method
* types.
*
* @return the argument types of methods of this type.
*/
public Type[] getArgumentTypes() {
return getArgumentTypes(getDescriptor());
}
代码示例来源:origin: Meituan-Dianping/Robust
public MethodBodyInsertor(MethodVisitor mv, String className, String desc, boolean isStatic, String methodId, String name, int access) {
super(Opcodes.ASM5, mv, access, name, desc);
this.className = className;
this.returnType = Type.getReturnType(desc);
Type[] argsType = Type.getArgumentTypes(desc);
for (Type type : argsType) {
paramsTypeClass.add(type);
}
this.isStatic = isStatic;
this.methodId = methodId;
}
代码示例来源:origin: pmd/pmd
private void addTypes(String desc) {
Type[] types = Type.getArgumentTypes(desc);
for (Type type : types) {
addType(type);
}
}
代码示例来源:origin: robolectric/robolectric
public static MethodSignature parse(String internalString) {
int parenStart = internalString.indexOf('(');
int methodStart = internalString.lastIndexOf('/', parenStart);
String className = internalString.substring(0, methodStart).replace('/', '.');
String methodName = internalString.substring(methodStart + 1, parenStart);
String methodDescriptor = internalString.substring(parenStart);
Type[] argumentTypes = Type.getArgumentTypes(methodDescriptor);
String[] paramTypes = new String[argumentTypes.length];
for (int i = 0; i < argumentTypes.length; i++) {
paramTypes[i] = argumentTypes[i].getClassName();
}
final String returnType = Type.getReturnType(methodDescriptor).getClassName();
return new MethodSignature(className, methodName, paramTypes, returnType);
}
代码示例来源:origin: pxb1988/dex2jar
private Method build(MtdInfo mapTo) {
Type[] ts = Type.getArgumentTypes(mapTo.desc);
String ss[] = new String[ts.length];
for (int i = 0; i < ss.length; i++) {
ss[i] = ts[i].getDescriptor();
}
return new Method(mapTo.owner, mapTo.name, ss, Type.getReturnType(mapTo.desc).getDescriptor());
}
代码示例来源:origin: konsoletyper/teavm
private int countSignatureVariables(String desc) {
int count = 1;
for (Type paramType : Type.getArgumentTypes(desc)) {
count += paramType.getSize();
}
return count;
}
代码示例来源:origin: jooby-project/jooby
public Signature(final ClassLoader loader, final MethodInsnNode method) {
this.owners = expand(loader, method.owner);
this.loader = loader;
this.name = method.name;
this.args = Type.getArgumentTypes(method.desc);
}
代码示例来源:origin: robolectric/robolectric
String remapParams(String desc) {
StringBuilder buf = new StringBuilder();
buf.append("(");
for (Type type : Type.getArgumentTypes(desc)) {
buf.append(remapParamType(type));
}
buf.append(")");
buf.append(remapParamType(Type.getReturnType(desc)));
return buf.toString();
}
代码示例来源:origin: linkedin/parseq
static String getArgumentsInformation(String insnDesc) {
if (insnDesc == null) {
return "";
}
Type methodType = Type.getMethodType(insnDesc);
int argSize = methodType.getArgumentTypes().length;
StringJoiner sj = new StringJoiner(",", "(", ")");
for (int i = 0; i < argSize; i++) {
sj.add("_");
}
return sj.toString();
}
代码示例来源:origin: pxb1988/dex2jar
IrMethod populate(String owner, MethodNode source) {
IrMethod target = new IrMethod();
target.name = source.name;
target.owner = "L" + owner + ";";
target.ret = Type.getReturnType(source.desc).getDescriptor();
Type[] args = Type.getArgumentTypes(source.desc);
String sArgs[] = new String[args.length];
target.args = sArgs;
for (int i = 0; i < args.length; i++) {
sArgs[i] = args[i].getDescriptor();
}
target.isStatic = 0 != (source.access & Opcodes.ACC_STATIC);
return target;
}
代码示例来源:origin: pxb1988/dex2jar
protected MtdInfo findTargetMethod0(Map<MtdInfo, MtdInfo> map, String owner, String name, String desc) {
MtdInfo v = map.get(buildKey(owner, name, desc));
if (v != null) {
return v;
}
// try with default ret
key.desc = Type.getMethodDescriptor(Type.getType(DEFAULT_RET_TYPE), Type.getArgumentTypes(desc));
v = map.get(key);
if (v != null) {
return v;
}
// try with default desc
key.desc = DEFAULT_DESC;
v = map.get(key);
if (v != null) {
return v;
}
if (!name.equals("*")) {
return findTargetMethod0(map, owner, "*", desc);
}
return v;
}
代码示例来源:origin: cglib/cglib
public LocalVariablesSorter(
final int access,
final String desc,
final MethodVisitor mv)
{
super(Constants.ASM_API, mv);
state = new State();
Type[] args = Type.getArgumentTypes(desc);
state.nextLocal = ((Opcodes.ACC_STATIC & access) != 0) ? 0 : 1;
for (int i = 0; i < args.length; i++) {
state.nextLocal += args[i].getSize();
}
firstLocal = state.nextLocal;
}
代码示例来源:origin: scouter-project/scouter
@Override
public MethodVisitor visitMethod(int access, String methodName, String desc, String signature, String[] exceptions) {
MethodVisitor mv = super.visitMethod(access, methodName, desc, signature, exceptions);
if (mv == null || mset.isA(methodName, desc) == false) {
return mv;
}
if (AsmUtil.isSpecial(methodName)) {
return mv;
}
return new JspServletMV(access, desc, mv, Type.getArgumentTypes(desc), (access & ACC_STATIC) != 0);
}
}
代码示例来源:origin: scouter-project/scouter
public static int getIdxByType(int access, String desc, Type type) {
Type[] t = Type.getArgumentTypes(desc);
int sidx = (AsmUtil.isStatic(access) ? 0 : 1);
for (int i = 0; t != null && i < t.length; i++) {
if (type.equals(t[i])) {
return sidx;
}
sidx += t[i].getSize();
}
return -1;
}
代码示例来源:origin: spring-projects/spring-loaded
private void chooseMethodSignature() throws Exception {
methodSignature = choice(getMethodSignatures());
int splitAt = methodSignature.indexOf('(');
methodName = methodSignature.substring(0, splitAt);
String methodDescriptor = methodSignature.substring(splitAt);
Type[] asmTypes = Type.getArgumentTypes(methodDescriptor);
params = new Class<?>[asmTypes.length];
//Get the corresponding class for each param type name
for (int i = 0; i < asmTypes.length; i++) {
params[i] = classForName(asmTypes[i].getClassName());
}
}
代码示例来源:origin: spring-projects/spring-loaded
private void chooseMethodSignature() throws Exception {
methodDescriptor = choice(getMethodSignatures());
Type[] asmTypes = Type.getArgumentTypes(methodDescriptor);
params = new Class<?>[asmTypes.length];
//Get the corresponding class for each param type name
for (int i = 0; i < asmTypes.length; i++) {
params[i] = classForName(asmTypes[i].getClassName());
}
}
内容来源于网络,如有侵权,请联系作者删除!