В BCEL мы можем помещать примитивные типы в стек операндов .НО теперь я хочу знать, возможно ли поместить объект пользовательского типа в стек в BCEL?
Я даю некоторый код, чтобы он мог объяснить контекст проблемы
class Automobile {
public void getEngine(int carNo,EngineClass engineClassObj){
System.out.println("EngineNo="+engineClassObj.sisNo);
}
}
Now when i load "Automobile" class in memory.
ilist = new InstructionList();
ilist.append(InstructionConstants.ALOAD_0);
ilist.append(new PUSH(pgen,345));
////Hear Now i have to also push the Object on Stack
ilist.append(ifact.createInvoke(_invoking_ClassName,_invoking_MethodName, Type.INT,*
new Type[] { Type.INT,Type.OBJECT }, Constants.INVOKEVIRTUAL));
ilist.append(InstructionConstants.IRETURN);
1-если я использую метод createNew () и генерирую новый объект, то как мне заполнить его значение поля?2-или, если я сначала помещаю значения всех полей типа Engine Obj в стек, используя PUSH, то могу узнать, как построить объект в памяти, а затем перенести его в стек.вот какое-то решение, о котором я могу подумать.
Но я не знаю правильного решения, так что все еще нужна помощь ...