2011-09-27 170 views
0

如果我有一个类,比方说,从DialogFragment扩展并定义它的自定义构造函数,为什么我应该定义一个默认的类?如果发生运行时更改,我不会收到错误消息。为什么我需要定义自定义构造函数?

+1

你可以重新说一句,所以它更清楚一点吗? – vickirk

回答

3

怀疑的问题是,在Java中,除非你指定一个自己编译器为您创建参数的构造函数。如果Android中的某些内容需要无参数的构造函数,那么或者您都不需要自己声明任何构造函数您需要显式声明无参数构造函数。

与Java语言规范的section 8.8.9

如果一个类不包含任何构造函数声明,则将自动提供一个默认的构造函数不带参数:

  • 如果所声明的类原始类Object,那么默认的构造函数有一个空的体。
  • 否则,默认构造函数不接受任何参数,只调用没有参数的超类构造函数。

这是否使事情清楚?我不太了解Android知道为什么需要无参数构造函数,但大概是这样的,可以通过反射创建实例,而无需为构造函数参数指定任何参数。

0

构造函数可能包含在创建对象时运行的代码。它有点像你想要完成的设置代码,所以对象已经准备好了它应该做的事情。

相关问题