Java 具有非本质变量的构造函数
我想知道是否有可能,如果有,如何创建一个构造函数,它接受三个变量,但如果不传递最后两个变量,它将不会通过错误 比如:Java 具有非本质变量的构造函数,java,android,Java,Android,我想知道是否有可能,如果有,如何创建一个构造函数,它接受三个变量,但如果不传递最后两个变量,它将不会通过错误 比如: public void onCreate(Bundle savedInstanceState, String s1<non essential>) { public void onCreate(Bundle savedInstanceState,字符串s1) { 创建更多的构造函数 public MyCreate(Bundle savedInstanceS
public void onCreate(Bundle savedInstanceState, String s1<non essential>)
{
public void onCreate(Bundle savedInstanceState,字符串s1)
{
创建更多的构造函数
public MyCreate(Bundle savedInstanceState)
{
public MyCreate(Bundle savedInstanceState, String s1)
{
public MyCreate(Bundle savedInstanceState, String s1, String s2)
{
请尝试在构造函数重载时阅读此内容。您有多种方法可以做到这一点。举几个例子:
- 您可以有多个具有不同签名的构造函数(如
由dash1e建议) - 您可以拥有所需变量类型的列表(或
对象,以防您希望它完全通用),并具有
构造函数,它获取列表并在存在时使用其值 - 您可以使用自定义数据模型类来封装这三个类
要处理并在构造函数中使用的值类型,
使其在由
类的构造函数,它们对于您使用的参数是可选的 需要
- 我真的最喜欢。有一些非常好的附加建议
此外,如果合适,可以使用varargs
public MyCreate(Bundle savedInstanceState, String ... args)
这和
public MyCreate(Bundle savedInstanceState, String [ ] args )
这与Luis Miguel Serrano使用列表非常相似,但您不必费心创建列表。您的方法定义仅显示两个argsonCreate()是一个方法,而不是一个构造函数。根据你对它的签名,你正在编写一个Android活动。在这种情况下,你不能更改onCreate的参数列表,你必须保持它与获得它时的参数列表相同。如果可能的话,让其中一个构造函数成为“主”构造函数,让其他构造函数只委托给
这个(savedInstanceState、DEFAULT_S1、DEFAULT_S2…
。这样,如果您的构造函数发生了更改,那么您需要维护的代码就更少了。