Exemplo n.º 1
0
  public static void castToReturnType(MethodVisitor mv, MethodSignatureVisitor msign) {
    final String returnType;

    char returnOpcodeType = msign.getReturnOpcodeType();

    switch (returnOpcodeType) {
      case 'I':
        returnType = AsmUtil.SIGNATURE_JAVA_LANG_INTEGER;
        break;
      case 'J':
        returnType = AsmUtil.SIGNATURE_JAVA_LANG_LONG;
        break;
      case 'S':
        returnType = AsmUtil.SIGNATURE_JAVA_LANG_SHORT;
        break;
      case 'B':
        returnType = AsmUtil.SIGNATURE_JAVA_LANG_BYTE;
        break;
      case 'Z':
        returnType = AsmUtil.SIGNATURE_JAVA_LANG_BOOLEAN;
        break;
      case 'F':
        returnType = AsmUtil.SIGNATURE_JAVA_LANG_FLOAT;
        break;
      case 'D':
        returnType = AsmUtil.SIGNATURE_JAVA_LANG_DOUBLE;
        break;
      case 'C':
        returnType = AsmUtil.SIGNATURE_JAVA_LANG_CHARACTER;
        break;
      case '[':
        returnType = msign.getReturnTypeName();
        break;
      default:
        returnType = msign.getReturnType().replace('.', '/');
        break;
    }

    mv.visitTypeInsn(CHECKCAST, returnType);
  }
Exemplo n.º 2
0
 public static void loadMethodReturnClass(MethodVisitor mv, MethodSignatureVisitor msign) {
   loadClass(mv, msign.getReturnOpcodeType(), msign.getReturnTypeName());
 }