java编译期初始化吗_java – 本地变量未初始化,但仍然是程序编译

如果你使用javac来编译它,它就不会编译:

stephen@blackbox tmp]$cat > Test.java

public class Test {

public static void main(String[] args) {

System.out.println("started");

//func();

}

static void func(){

double d;

int i;

System.out.println("d ="+d);

System.out.println("i ="+i);

}

}

[stephen@blackbox tmp]$javac Test.java

Test.java:12: error: variable d might not have been initialized

System.out.println("d ="+d);

^

Test.java:13: error: variable i might not have been initialized

System.out.println("i ="+i);

^

2 errors

[stephen@blackbox tmp]$

我的猜测是你正在使用IDE,并且你在过去的某个时刻告诉IDE,尝试运行编译错误的程序是可以的.这是通过将编译错误的“编译”方法实现为在调用时抛出异常的字节码来实现的.当您注释掉对faulty方法的调用时,它不会被调用…自然……并且不会抛出异常.

但最重要的是你得到了编译错误.你刚刚告诉IDE忽略它.

解决方案很明显.修复编译错误.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值