我仍在与Java的参考文献作斗争.我不确定我是否会理解它们.有谁能够帮我?
非静态内部类可以通过访问封闭类Outer.this.但外层如何进入内心this呢?
看这个例子:
class cycle
{
abstract static class Entity
{
abstract static class Attribute
{
abstract static class Value
{
abstract Attribute attribute ();
}
abstract Entity entity ();
abstract Value value ();
}
}
static class Person extends Entity
{
class FirstName extends Attribute
{
class StringValue extends Value
{
Attribute attribute () { return FirstName.this; }
}
Entity entity () { return Person.this; }
Value value () { return this.StringValue.this; }
}
}
public static void main (String[] args)
{
Person p = new Person();
}
}
Run Code Online (Sandbox Code Playgroud)
StringValue可以访问FirstName并FirstName可以访问Person.但怎么可以FirstName访问StringValue?
我<identifier> expected在执行中得到错误value()?什么是正确的语法?
Inner类是Outer类的成员,但它不是字段,即.不仅最多只有一个.
你可以做
Outer outer = new Outer();
Outer.Inner inner1 = outer.new Inner();
Outer.Inner inner2 = outer.new Inner();
Outer.Inner inner3 = outer.new Inner();
... // ad nauseam
Run Code Online (Sandbox Code Playgroud)
尽管每个Inner对象都与其外部实例相关,但实例对Outer实例一无所知,Inner除非您告诉它,即.保留对它们的引用.
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |