17

我在谷歌搜索一些东西,我得到了一个类似的代码

public static abstract class LocationResult{
    public abstract void gotLocation(Location location);
}

这是一个嵌套类,但想知道如何访问它?

4

2 回答 2

25

它必须是嵌套类:类上的 static 关键字不是其中的方法)仅用于嵌套类(并且在语法上有效)。这样的静态成员类(在 Nutshell 的常见命名文化中使用 Java)不包含对封闭类的引用,因此只能访问其中的静态字段和方法(与非静态的不同;请参阅 Java 中嵌套类的任何摘要(也称为内部类)。

它可以像这样访问:

public class EnclosingClass {
  public static abstract class LocationResult{
    public abstract void gotLocation(Location location);
  }
}

EnclosingClass.LocationResult locationResult = ...
于 2012-09-13T09:30:12.130 回答
3

只有嵌套类可以是静态的。通过这样做,您可以使用嵌套类而无需外部类的实例。

所以你可以创建一个类来扩展它extends Mainclass.LocationResult并使用它Mainclass.LocationResult instance = ...

于 2012-09-13T09:31:31.407 回答