带有内部赋值的java While循环导致checkstyle错误
我正在检查我的代码,以确保它符合CheckStyle标准
我个人认为“无内部赋值”规则使代码更难理解(您必须查看3处而不是1处)
是否有某种方法可以通过在while循环中创建{}块来执行赋值并返回布尔值来保留我的单个区域
你的意见是什么
File file = new File("C:\\test.txt");
FileInputStream fileInputStream = new FileInputStream(new FileInputStream(file));
// Inner Assignment
while ((int i = fileInputStream.readLine()) != -1)
{
//
}
// No Inner Assignment
int i = fileInputStream.readLine();
while(i!= -1)
{
//
i = in.readLine();
}
当我需要一个while循环来分配一些变量的组合时,我会遇到类似的问题,例如使用++操作符
这个for循环会被认为是更好的选择吗(它确实符合checkstyle)
for (int i = fileInputStream.readLine(); i != -1; i = fileInputStream.readLine())
{
//
}
# 1 楼答案
你可以将你的循环重写为一个无限循环,中间有一个^ {CD1>},像这样:
请注意
i
可以在循环内部移动:退出循环时它可以拥有的唯一值是-1
,因此没有理由让变量在循环外部可见