Java can';我们不能定义包含该变量所在类的变量吗?
代码如下:Java can';我们不能定义包含该变量所在类的变量吗?,java,Java,代码如下: public class Final { int x; Final(int i) { x = i; } protected void finalize() { System.out.println("Final of the class!" + this.x); } public void generate(int count) { Final final
public class Final {
int x;
Final(int i)
{
x = i;
}
protected void finalize()
{
System.out.println("Final of the class!" + this.x);
}
public void generate(int count)
{
Final final = new Final(count);
}
}
查看Final Final=新的Final(计数)代码>我从此行中得到错误。(不是一个声明;除外
)。我们不能定义包含该变量的类的变量吗?final
是一个,这意味着您不能根据将其用作变量名
因此,您只需更改名称:
Final myFinal = new Final(count);
final
是一个,这意味着您不能根据将其用作变量名
因此,您只需更改名称:
Final myFinal = new Final(count);
final
是一个关键字
java将其解释为:
[type] [modifier]=new [type]()
这缺少变量名,因此无效
从:
字段声明:
FieldModifiers[opt]类型变量声明器
我们将final
作为字段修饰符。我们现在需要一个类型和一个声明器。这与您提供的内容不一致,您提供的内容被解析为Type FieldModifiers
。解析未生成有效的表达式
此外,根据JLS第3.9节,final是一个关键字,可能不是一个标识符,即使它是明确的。final
是一个关键字
java将其解释为:
[type] [modifier]=new [type]()
这缺少变量名,因此无效
从:
字段声明:
FieldModifiers[opt]类型变量声明器
我们将final
作为字段修饰符。我们现在需要一个类型和一个声明器。这与您提供的内容不一致,您提供的内容被解析为Type FieldModifiers
。解析未生成有效的表达式
此外,根据JLS第3.9节,final是一个关键字,可能不是标识符,即使它是明确的。final
是一个,不能用作标识符
:
标识符不能与关键字(§3.9)、布尔文字(§3.10.3)或空文字(§3.10.7)具有相同的拼写(Unicode字符序列),否则会发生编译时错误
final
是一个,不能用作标识符
:
标识符不能与关键字(§3.9)、布尔文字(§3.10.3)或空文字(§3.10.7)具有相同的拼写(Unicode字符序列),否则会发生编译时错误
您的问题源于上一个方法使用final作为变量名
public void generate(int count)
{
Final final = new Final(count);
}
现在这不是一个问题,除非它是小写,使其成为关键字final,这是一个问题,因为final使一个变量一旦生成就不可更改。避免这种情况的最好方法是避免使用关键字或将它们全部大写,以告诉编译器这不是关键字。您的问题源于上一种方法,即使用final作为变量名
public void generate(int count)
{
Final final = new Final(count);
}
现在这不是一个问题,除非它是小写,使其成为关键字final,这是一个问题,因为final使一个变量一旦生成就不可更改。避免这种情况的最好方法是避免使用关键字或将它们全部大写,以告诉编译器这不是关键字。为什么要声明一个名为“final”的变量?为什么要声明一个名为“final”的变量?好的,但我想finalize()函数不运行?原因可能是什么?@Yusuf是你首先修复变量名的吗<代码>最终确定(
有特殊的含义。说这一行将如何解释是没有意义的。根据JLS§3.9,它是无效的。@Hexafrance GC可能调用,取决于JVM实现!@TheNewIdiot是的。我的错。OP:永远,永远,永远,永远依赖于finalize
。可能无法保证,而且在所有方面都是个坏主意。好吧,但我想finalize()函数没有运行?原因是什么?@Yusuf您首先修复了变量名吗?finalize(
有特殊的含义。说这一行将如何解释是没有意义的。根据JLS§3.9,它是无效的。@Hexafrance GC可能调用,取决于JVM实现!@TheNewIdiot Yes。My bad。OP:永远,永远,永远,永远依赖于finalize
。可能无法做出任何保证,这在各个方面都是一个坏主意。