Example #1
0
 public Assembler unbox(String desc) {
   int typeCode = desc.charAt(0);
   switch (typeCode) {
     case '[':
     case 'L':
       mv.visitTypeInsn(CHECKCAST, Type.getType(desc).getInternalName());
       break;
     case 'Z':
       mv.visitTypeInsn(CHECKCAST, JAVA_LANG_BOOLEAN);
       invokeVirtual(JAVA_LANG_BOOLEAN, BOOLEAN_VALUE, BOOLEAN_VALUE_DESC);
       break;
     case 'C':
       mv.visitTypeInsn(CHECKCAST, JAVA_LANG_CHARACTER);
       invokeVirtual(JAVA_LANG_CHARACTER, CHAR_VALUE, CHAR_VALUE_DESC);
       break;
     case 'B':
       mv.visitTypeInsn(CHECKCAST, JAVA_LANG_NUMBER);
       invokeVirtual(JAVA_LANG_NUMBER, BYTE_VALUE, BYTE_VALUE_DESC);
       break;
     case 'S':
       mv.visitTypeInsn(CHECKCAST, JAVA_LANG_NUMBER);
       invokeVirtual(JAVA_LANG_NUMBER, SHORT_VALUE, SHORT_VALUE_DESC);
       break;
     case 'I':
       mv.visitTypeInsn(CHECKCAST, JAVA_LANG_NUMBER);
       invokeVirtual(JAVA_LANG_NUMBER, INT_VALUE, INT_VALUE_DESC);
       break;
     case 'J':
       mv.visitTypeInsn(CHECKCAST, JAVA_LANG_NUMBER);
       invokeVirtual(JAVA_LANG_NUMBER, LONG_VALUE, LONG_VALUE_DESC);
       break;
     case 'F':
       mv.visitTypeInsn(CHECKCAST, JAVA_LANG_NUMBER);
       invokeVirtual(JAVA_LANG_NUMBER, FLOAT_VALUE, FLOAT_VALUE_DESC);
       break;
     case 'D':
       mv.visitTypeInsn(CHECKCAST, JAVA_LANG_NUMBER);
       invokeVirtual(JAVA_LANG_NUMBER, DOUBLE_VALUE, DOUBLE_VALUE_DESC);
       break;
   }
   return this;
 }
Example #2
0
 public Assembler newArray(Type t) {
   mv.visitTypeInsn(ANEWARRAY, t.getInternalName());
   return this;
 }
Example #3
0
 public Assembler newInstance(Type t) {
   mv.visitTypeInsn(NEW, t.getInternalName());
   return this;
 }