本文整理了Java中org.objectweb.asm.Type.getMethodType()
方法的一些代码示例,展示了Type.getMethodType()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Type.getMethodType()
方法的具体详情如下:
包路径:org.objectweb.asm.Type
类名称:Type
方法名:getMethodType
[英]Returns the Java type corresponding to the given method descriptor. Equivalent to Type.getType(methodDescriptor)
.
[中]返回与给定方法描述符对应的Java类型。相当于Type.getType(methodDescriptor)
。
代码示例来源: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: alibaba/jvm-sandbox
private String getBehaviorSignCode(final String name,
final String desc) {
final Type methodType = Type.getMethodType(desc);
final Collection<String> parameterClassNameArray = new ArrayList<String>();
if (null != methodType.getArgumentTypes()) {
for (final Type parameterType : methodType.getArgumentTypes()) {
parameterClassNameArray.add(parameterType.getClassName());
}
}
final String signCode = String.format(
"%s#%s(%s)",
targetJavaClassName,
name,
join(parameterClassNameArray, ",")
);
return signCode;
}
代码示例来源:origin: linkedin/parseq
static String getDescriptionForMethodInsnNode(MethodInsnNode methodInstr) {
if (methodInstr.getOpcode() == Opcodes.INVOKESPECIAL && methodInstr.name.equals("<init>")) {
return "new " + Util.extractSimpleName(methodInstr.owner, "/") + "()";
} else {
Type methodType = Type.getMethodType(methodInstr.desc);
int retSize = methodType.getArgumentsAndReturnSizes() & 0x03;
if (retSize > 0) {
return methodInstr.name + Util.getArgumentsInformation(methodInstr.desc);
}
}
return "";
}
代码示例来源:origin: prestodb/presto
.build();
Type instantiatedMethodAsmType = getMethodType(
compiledLambda.getReturnType().getAsmType(),
compiledLambda.getParameterTypes().stream()
代码示例来源:origin: oldmanpushcart/greys-anatomy
private GaMethod toMethod(ClassLoader loader, Class<?> clazz, String methodName, String methodDesc)
throws ClassNotFoundException, NoSuchMethodException {
final org.objectweb.asm.Type asmType = org.objectweb.asm.Type.getMethodType(methodDesc);
代码示例来源:origin: org.ow2.asm/asm
return readUTF8(cpInfoOffset, charBuffer);
case Symbol.CONSTANT_METHOD_TYPE_TAG:
return Type.getMethodType(readUTF8(cpInfoOffset, charBuffer));
case Symbol.CONSTANT_METHOD_HANDLE_TAG:
int referenceKind = readByte(cpInfoOffset);
代码示例来源:origin: micronaut-projects/micronaut-core
return readUTF8(index, buf);
case MTYPE:
return Type.getMethodType(readUTF8(index, buf));
default: // case ClassWriter.HANDLE_BASE + [1..9]:
int tag = readByte(index);
代码示例来源:origin: pxb1988/dex2jar
ele = Type.getMethodType(((Proto) ele).getDesc());
代码示例来源:origin: SonarSource/sonar-java
@Override
public int arity() {
Type methodType = Type.getMethodType(desc);
return methodType.getArgumentTypes().length;
}
代码示例来源:origin: org.sonarsource.java/java-frontend
@Override
public int arity() {
Type methodType = Type.getMethodType(desc);
return methodType.getArgumentTypes().length;
}
代码示例来源:origin: SonarSource/sonar-java
public int arity() {
Preconditions.checkState(isInvoke(), "Not an INVOKE opcode");
Type methodType = Type.getMethodType(fieldOrMethod.desc);
return methodType.getArgumentTypes().length;
}
代码示例来源:origin: org.sonarsource.java/java-frontend
public int arity() {
Preconditions.checkState(isInvoke(), "Not an INVOKE opcode");
Type methodType = Type.getMethodType(fieldOrMethod.desc);
return methodType.getArgumentTypes().length;
}
代码示例来源:origin: OpenMods/OpenModsLib
public HorseNullFix(String horseClass, ClassVisitor cv, IResultListener listener) {
super(Opcodes.ASM5, cv);
this.listener = listener;
modifiedMethod = new MethodMatcher(horseClass, Type.getMethodType(Type.VOID_TYPE).getDescriptor(), "updateHorseSlots", "func_110232_cE");
}
代码示例来源:origin: mjanicek/rembulan
public static AbstractInsnNode get() {
return new MethodInsnNode(
INVOKEINTERFACE,
selfTpe().getInternalName(),
"get",
Type.getMethodType(
Type.getType(Object.class),
Type.INT_TYPE).getDescriptor(),
true);
}
代码示例来源:origin: mjanicek/rembulan
public static AbstractInsnNode size() {
return new MethodInsnNode(
INVOKEINTERFACE,
selfTpe().getInternalName(),
"size",
Type.getMethodType(
Type.INT_TYPE).getDescriptor(),
true);
}
代码示例来源:origin: mjanicek/rembulan
private Type snapshotMethodType() {
ArrayList<Type> args = new ArrayList<>();
args.add(Type.INT_TYPE);
if (context.isVararg()) {
args.add(ASMUtils.arrayTypeFor(Object.class));
}
for (int i = 0; i < numOfRegisters(); i++) {
args.add(Type.getType(Object.class));
}
return Type.getMethodType(context.savedStateClassType(), args.toArray(new Type[0]));
}
代码示例来源:origin: org.codelibs.elasticsearch.module/lang-painless
@Override
void store(MethodWriter writer, Globals globals) {
writer.writeDebugInfo(location);
org.objectweb.asm.Type methodType = org.objectweb.asm.Type.getMethodType(
org.objectweb.asm.Type.getType(void.class), org.objectweb.asm.Type.getType(Object.class), MethodWriter.getType(actual));
writer.invokeDefCall(value, methodType, DefBootstrap.STORE);
}
代码示例来源:origin: mjanicek/rembulan
public static AbstractInsnNode toArray() {
return new MethodInsnNode(
INVOKEINTERFACE,
selfTpe().getInternalName(),
"getAsArray",
Type.getMethodType(
ASMUtils.arrayTypeFor(Object.class)).getDescriptor(),
true);
}
代码示例来源:origin: spotify/missinglink
private static MethodDescriptor newDescriptor(MethodKey key) {
Type type = Type.getMethodType(key.desc);
List<TypeDescriptor> params = Arrays.stream(type.getArgumentTypes())
.map(Type::getDescriptor)
.map(TypeDescriptors::fromRaw)
.collect(toList());
return new MethodDescriptorBuilder()
.returnType(TypeDescriptors.fromRaw(type.getReturnType().getDescriptor()))
.name(key.name)
.parameterTypes(ImmutableList.copyOf(params))
.build();
}
代码示例来源:origin: OpenMods/OpenModsLib
public PlayerRendererHookVisitor(String rendererTypeCls, ClassVisitor cv, IResultListener listener) {
super(Opcodes.ASM5, cv);
this.listener = listener;
Type injectedMethodType = Type.getMethodType(Type.VOID_TYPE, MappedType.of(AbstractClientPlayer.class).type(), Type.FLOAT_TYPE, Type.FLOAT_TYPE, Type.FLOAT_TYPE);
modifiedMethod = new MethodMatcher(rendererTypeCls, injectedMethodType.getDescriptor(), "applyRotations", "func_77043_a");
}
内容来源于网络,如有侵权,请联系作者删除!