checkcast #ref
199200201202203204205206207208209
try { JiapiClass jc = new Loader().loadClass("java.lang.Character"); JiapiMethod jm = jc.getDeclaredMethod("charValue", new String[0]); il.add(factory.cast("java.lang.Character")); il.add(factory.invoke(jm)); } catch(Exception e) { e.printStackTrace(); }
212213214215216217218219220221222
try { JiapiClass jc = new Loader().loadClass("java.lang.Boolean"); JiapiMethod jm = jc.getDeclaredMethod("booleanValue", new String[0]); il.add(factory.cast("java.lang.Boolean")); il.add(factory.invoke(jm)); } catch(Exception e) { e.printStackTrace(); }
225226227228229230231232233234235
try { JiapiClass jc = new Loader().loadClass("java.lang.Byte"); JiapiMethod jm = jc.getDeclaredMethod("byteValue", new String[0]); il.add(factory.cast("java.lang.Byte")); il.add(factory.invoke(jm)); } catch(Exception e) { e.printStackTrace(); }
238239240241242243244245246247248
try { JiapiClass jc = new Loader().loadClass("java.lang.Float"); JiapiMethod jm = jc.getDeclaredMethod("floatValue", new String[0]); il.add(factory.cast("java.lang.Float")); il.add(factory.invoke(jm)); } catch(Exception e) { e.printStackTrace(); }
251252253254255256257258259260261
try { JiapiClass jc = new Loader().loadClass("java.lang.Double"); JiapiMethod jm = jc.getDeclaredMethod("doubleValue", new String[0]); il.add(factory.cast("java.lang.Double")); il.add(factory.invoke(jm)); } catch(Exception e) { e.printStackTrace(); }
264265266267268269270271272
// Pop out the return value(probably null) of // the invocation handler if it was a 'void' method il.add(new Instruction(new byte[]{Opcodes.POP})); } else { // Cast to correct Object il.add(factory.cast(rType)); } } }