我的代码是这样的:
public class BookStore {
class Enumerator1 {
static int b = 0;//requires final
}
public String searchBook(final String criteria) {
class Enumerator2 {
static int b = 0;//requires final
}
return "";
}
}
在这里我不能将 b 声明为静态,它需要是常量。我不明白为什么?
因为类本身实际上不是静态的,所以非最终静态声明意味着每个父实例都有一个实例,这是不可能的。 “final”基本上是一个常数,因此不会引起任何问题。
如果您也将内部类声明为静态,则可以在内部包含静态变量:
public class BookStore {
static class Enumerator1 {
static int b = 0;// works
}
public String searchBook(final String criteria) {
class Enumerator2 {
final static int b = 0; // still necessary as the class can't be static here
}
return "";
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)