【发布时间】:2016-06-23 04:09:17
【问题描述】:
当所有成员都是静态的时,为什么android Color 类有一个公共构造函数?这只是一个错误吗?
【问题讨论】:
-
您可能必须找到那些多年前编写
Color课程的 Google 工程师并询问。
标签: android
当所有成员都是静态的时,为什么android Color 类有一个公共构造函数?这只是一个错误吗?
【问题讨论】:
Color 课程的 Google 工程师并询问。
标签: android
Color.java 文件的source code 表明没有 Google 工程师明确为 Color 类编写公共构造函数。
Color 类的API documentation 确实列出了一个公共构造函数,但Java 有一个implicit default constructor,这是文档中列出的构造函数。
这里真正可能的问题是非此即彼,
对于第一点,我不认为 Google 决定列出隐式默认构造函数是任何错误或错误的设计决定。他们可以在类中定义一个构造函数来限制对任何构造函数的访问,但这只需要额外的代码,并且为只有静态成员的类创建一个默认构造函数不会导致类的任何误用。
对于第二点,对编译器进行优化以防止在只有静态成员的类中出现任何隐式默认构造函数可能是有意义的,但这是另一个线程的问题。
tl;dr 不,不是错。
【讨论】:
可能的一致性和潜在的未来用途是工程师编写构造函数的原因,即使它什么都不做。但是,工程师可能没有编写构造函数。如果没有给出构造函数,编译器会创建一个默认的公共构造函数。
查看答案given here。它链接到this。
文档在某种程度上可能是自动生成的,它可能会告知您默认构造函数的存在,即使工程师没有创建它。
【讨论】: