diff --git a/jode/jode/type/MethodType.java b/jode/jode/type/MethodType.java index 3e11e00..8d71d23 100644 --- a/jode/jode/type/MethodType.java +++ b/jode/jode/type/MethodType.java @@ -58,6 +58,20 @@ public class MethodType extends Type { returnType = Type.tType(signature.substring(index+1)); } + public MethodType(Class paramT[], Class returnT) { + super(TC_METHOD); + StringBuffer sig = new StringBuffer("("); + parameterTypes = new Type[paramT.length]; + for (int i=0; i< paramT.length; i++) { + parameterTypes[i] = Type.tType(paramT[i]); + sig.append(parameterTypes[i].getTypeSignature()); + } + sig.append(")"); + returnType = Type.tType(returnT); + sig.append(returnType.getTypeSignature()); + signature = sig.toString(); + } + public final int stackSize() { int size = returnType.stackSize(); for (int i=0; i= 0; ) + paramClasses[i] = parameterTypes[i].getTypeClass(); + return paramClasses; + } + public Type getReturnType() { return returnType; } + public Class getReturnClass() throws ClassNotFoundException { + return returnType.getTypeClass(); + } + public String getTypeSignature() { return signature; }