为什么android Color类的所有成员都是静态的时都有一个公共构造函数?这只是一个错误吗?
答案 0 :(得分:0)
可能一致性和潜在的未来使用是工程师编写构造函数的原因,即使它什么都不做。但是,工程师可能没有编写构造函数。如果没有给出构造函数,则编译器会创建默认的公共构造函数。
查看答案given here。它链接到this。
文档可能会在某种程度上自动生成,可能会告诉您默认构造函数的存在,即使工程师没有创建它。
答案 1 :(得分:0)
Color.java文件的source code表明没有Google工程师明确为Color类编写公共构造函数。
Color类的API documentation确实列出了一个公共构造函数,但Java有implicit default constructor,这是文档中列出的构造函数。
这里真正可能的问题是/或,
对于第一点,我不认为Google决定列出隐式默认构造函数的任何错误或错误的设计决定。他们可以在类中定义一个构造函数来限制对任何构造函数的访问,但这只需要额外的代码,并且无用地为只有静态成员的类创建默认构造函数不会导致任何滥用类的行为。
对于第二点,有一个编译器优化可能有意义,以防止只有静态成员的类中的任何隐式默认构造函数,但这是另一个线程的问题。
不,不是错误。