我知道这些问题可能听起来很愚蠢,但在Java中,什么是辅助类,如何编写一个,编译器如何知道某些东西是辅助类?
编辑:我问这个的原因是因为编译器正在生成关于外部库中对象的警告,我想知道原因.
编辑2:
以下是需要它的人的编译器警告:
warning: auxiliary class Pattern in jregex/Pattern.java should not be accessed from outside its own source file
Run Code Online (Sandbox Code Playgroud)
正如Java规范descried 在这里,你可以在一个java文件指定多个类.名称与.java文件名匹配的类将是可以声明为public且对其他类可见的主类.因此,文件中的所有其他类都是"auxilary"类.Auxilary类不能被声明为public(并且正如@trashgod所指出的那样)因此它们只能通过包私有访问来声明.例如对于AClass.java文件:
public class AClass {
private AuxilaryClass a;
}
class AuxilaryClass {
private int b;
}
Run Code Online (Sandbox Code Playgroud)
AuxilaryClass类不能公开,并且在此AClass.java文件之外不可见.
但是,使用auxilary类被认为是非常糟糕的风格和Java Code Convention.如果确实需要,请使用单独或内部类.
编辑:术语"Auxilary"不是Oracle/Sun的官方术语.它已在此处引入(或使用):http://www.youtube.com/watch?v = miTM9rY3He0和/或此处:http://doc.sumy.ua/prog/java/langref/ch05_03.htm
| 归档时间: |
|
| 查看次数: |
9673 次 |
| 最近记录: |