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