java 局部变量的作用域问题
public class LocalVarTest {
public static void main(String[] args) {
LocalVar var = new LocalVar();
var.doNext();
}
}
class LocalVar{
private Scorer[] scorers;
private boolean more;
private int lastDoc;
public boolean doNext(){
int first=0;
Scorer lastScorer = scorers[scorers.length-1];
Scorer firstScorer;
while (A.isTrue(more && (firstScorer=scorers[first]).doc() < (lastDoc=lastScorer.doc()), 1, 2)) {
more = firstScorer.skipTo(lastDoc);
lastScorer = firstScorer;
first = (first == (scorers.length-1)) ? 0 : first+1;
}
return more;
}
}
class A{
private static int[] a = new int[100];
public static boolean isTrue(boolean isA, int i, int j){
a[i] = j;
return isA;
}
}
class Scorer{
public int doc() {
return 0;
}
public boolean skipTo(int lastDoc) {
return false;
}
}
一直报 The local variable firstScorer may not have been initialized 错误,如果把 firstScorer 赋个初值,如:
firstScorer = null
就没有问题了,现在问题是代码是动态的,不方便赋值,不知有什么方法解决?谢谢!
...全文
相关推荐
Java变量和对象的作用域
在这里,s引用已经超出作用域,但我们无法直接访问对象,因为它没有有效的引用```Java的垃圾收集机制使得开发者无需手动释放内存,这减轻了C++程序员经常面临的内存管理问题。
Javascript变量作用域详解
这与其他一些语言(如Java)不同,在Java中大括号`{}`定义的作用域被称为块级作用域。在Javascript中,即使使用大括号定义了一个新的代码块,它也不会创建一个新的作用域。
JavaScript 学习笔记之变量及其作用域
函数中的局部变量在整个函数内都有效。这一点与Java或C等语言不同,那些语言中变量具有块级作用域,也就是说在花括号{}内声明的变量只能在该花括号内访问。
java内置对象作用域
同步对象的作用域通常是方法或代码块,确保同一时间只有一个线程能访问特定资源。了解和熟练掌握这些内置对象的作用域,有助于优化代码的性能,避免并发问题,并有效地利用Java提供的功能。
java变量命名心得
"java 变量命名心得"Java 变量命名是一个非常重要的概念,它直接影响着程序的可读性和维护性。下面我们将通过一个实例来展示局部变量和实例变量的区别,并总结 java 变量命名的几个典型问题。


Java SE
