我已经通过 这个关于前向引用的合法性的问题,但不清楚forward referencesJava语言的含义.有人可以借助一个例子来解释吗?
Per*_*ion 14
这特别是编译错误.它的全部都是关于类变量声明的排序.我们将一些代码用于说明目的:
public class ForwardReference {
public ForwardReference() {
super();
}
public ForwardReference echoReference() {
return this;
}
public void testLegalForwardReference() {
// Illustration: Legal
this.x = 5;
}
private int x = 0;
// Illustration: Illegal
private ForwardReference b = a.reference();
private ForwardReference a = new ForwardReference();
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,Java允许你引用一个类变量的类方法,即使变量的声明来后的方法.这是(合法的)前向引用的示例,对此的支持内置于Java编译器中.
但你不能做的是声明一个类变量'a',它依赖于另一个尚未声明的类变量'b'.依赖类变量声明必须以其依赖项的相反顺序出现.
在切线上,如果您的代码包含非法引用错误,则大多数(如果不是全部)IDE将警告您.
非法的前向引用包含在JLS的8.3.2.3节中.
| 归档时间: |
|
| 查看次数: |
7510 次 |
| 最近记录: |