我知道这些问题可能听起来很愚蠢,但在Java中,什么是辅助类,如何编写一个,编译器如何知道某些东西是辅助类?
编辑: 我问这个的原因是因为编译器正在生成关于外部库中对象的警告,我想知道原因。
编辑2:
以下是需要它的人的编译器警告:
warning: auxiliary class Pattern in jregex/Pattern.java should not be accessed from outside its own source file
答案 0 :(得分:6)
如Java规范here中所述,您可以在一个.java文件中指定多个类。名称与.java文件名匹配的类将是可以声明为public且对其他类可见的主类。因此,文件中的所有其他类都是“auxilary”类。 Auxilary类不能被声明为public(并且正如@trashgod所指出的那样)因此它们只能通过包私有访问来声明。例如,对于AClass.java文件:
public class AClass {
private AuxilaryClass a;
}
class AuxilaryClass {
private int b;
}
AuxilaryClass类不能公开,并且在此AClass.java文件之外不可见。
然而,使用auxilary类被认为是非常糟糕的风格并且反对Java Code Convention。如果确实需要,请使用单独的或inner课程。
编辑:“Auxilary”一词不是Oracle / Sun的官方术语。它已在此处引入(或使用):http://www.youtube.com/watch?v=miTM9rY3He0和/或此处:http://doc.sumy.ua/prog/java/langref/ch05_03.htm
答案 1 :(得分:0)
据我所知,辅助班不是任何官方或技术的东西。有人可能会将类描述为辅助,如果它正在解决次要问题,或者其他什么,但编译器不知道辅助类是什么,我也不知道。
通常,如果您有来自计算机的错误消息,请将其全部粘贴。如果您认为编译器对辅助类感到不安,请粘贴错误消息:其他人将能够理解它,而目前它正在通过某种混淆进行过滤,这使您认为辅助类是真实的! / p>