class Test{
public static void main(String[] args) {
Hello h=new Hello();
System.out.println(h.a);
}
}
class Hello{
int a;//even i add static modifier it gives the same result
a=10;
}
欺骗异常
a=10
- >预期的标识符
我想通过jvm
的内部功能来解决这个错误的原因答案 0 :(得分:1)
它与JVM本身无关,但与Java语言规范无关。这不是有效的Java。
要修复它,您可以在声明变量时指定值:
class Hello{
int a=10;
}
您还可以使用初始化块...
class Hello{
int a;
{a=10;}
}
...或者将它放在构造函数
中class Hello{
int a;
public Hello{a=10;}
}
请注意,您还需要更改main
方法,因为它是static
Hello h = new Test().new Hello();
答案 1 :(得分:0)
更改代码如下: int a = 10; 否则,您必须在方法和/或构造函数中包装赋值。您无法直接在类定义中编写代码。您只能声明实例和类变量,构造函数和方法。 同样在这种情况下不是抛出异常的虚拟机,代码根本就不会编译。