您好我从Android API查看此语法并发现它有点奇怪。
java.lang.Object
↳ android.graphics.BitmapFactory.Options
公共静态类 BitmapFactory.Options
我从未见过带过'。'的课程。在它的中间。为什么他们不只是调用类'BitmapFactoryOptions'?
然后我更加困惑,因为我在一本书中看到了这段代码
final BitmapFactory.Options options = new BitmapFactory.Options();
BitmapFactory是静态的,但我们正在创建它的实例吗?
答案 0 :(得分:3)
添加到@dasblinkenlight回答,代码可能如下所示:
public class BitmapFactory {
public static class Options {
}
}
确实如此,请参阅source code for BitmapFactory。
答案 1 :(得分:2)
他们没有给这个类命名为一个点(这是非法的)。他们所做的就是添加一个名为Options
的静态内部类 - BitmapFactory
类的成员类。
当有问题的类或接口本身没有意义时,这是将类隐藏在其外部类中的常见方法,并且必须仅在其外部类的上下文中进行解释。
当然,您建议的解决方案(命名类BitmapFactoryOptions
)也是完全有效的。但是,它给人一种错误的印象,即该课程本身可以有用。
也许最常用的例子是Map.Entry<K,V>
接口:只有当地图周围有地图时,地图条目才有意义,所以嵌套非常有用。
答案 2 :(得分:0)
就像任何其他类变量和类方法一样,类中也可以有类。以下示例显示了使用相同语法访问的所有三种类成员。
public class Person{
public static long totalPopulation;
public static void calculateAge(Date dob){
}
public static class Address{
}
}
所有这些都将以相同的方式访问。即,
Person.totalPopulation = 700_000_0000L;
Person.calculateAge(person.getDOB());
Person.Address address = new Person.Address();