| Refresh | Home EGTry.com

invoke method and instantiate class


invoke static method

//int c=sample.InvokeMethod.add(2,3);
mv.visitInsn(ICONST_2); //arg1
mv.visitInsn(ICONST_3); //arg2

mv.visitMethodInsn(INVOKESTATIC, 
   "sample/InvokeMethod", //class name
   "add", //static method name
  "(II)I"); //return type is integer


instance method invoke

//obj.cal(4,5);
mv.visitVarInsn(ALOAD, 2); //load object from stack
mv.visitInsn(ICONST_4); //arg1
mv.visitInsn(ICONST_5); //arg2
mv.visitMethodInsn(INVOKEVIRTUAL, "sample/InvokeMethod", "cal", "(II)V");


instantiation of object

//sample.InvokeMethod obj=new sample.InvokeMethod(6,7);
mv.visitTypeInsn(NEW, "sample/InvokeMethod");
mv.visitInsn(DUP);
mv.visitIntInsn(BIPUSH, 6);
mv.visitIntInsn(BIPUSH, 7);
mv.visitMethodInsn(INVOKESPECIAL, "sample/InvokeMethod", "<init>", "()V");
mv.visitVarInsn(ASTORE, 4);