编辑:这个问题与MicroJava字节码有关,而不是与实际的Java字节码
有关字节码问题 - 请考虑以下事项:
class C {
int d;
int m() {
return d;
}
}
在定义函数体m()时,它看起来像这样:
enter 0, 0
getfield 0
exit
return
现在,getfield
指令要求对象的地址位于堆栈顶部,但是,在这种情况下,它不是(至少我认为它不是,因为我没有明确地把它放在那里,并且不知道如何,因为我在课堂上看到了。
另一方面,load
指令将相对于函数本身,并且由于我没有传递任何参数来起作用,这似乎是不可能的。
另外,由于class C
是在另一个类(即程序)中定义的,因此使用getstatic
也应该是错误的,因为它不是全局变量。
任何想法?