Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有非本质变量的构造函数_Java_Android - Fatal编程技术网

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…
      。这样,如果您的构造函数发生了更改,那么您需要维护的代码就更少了。