java - 根据 boolean 值制作2个构造函数

标签 java android constructor

这是一个非常简单的问题。我正在为我的应用制作一个简单的 Java 对象,如下所示:

public class Category{
    // STATE
    private String mCategoryName;
    private Boolean mContainsSubcategories;
    private Subcategory[] mSubcategoryList; // Subcategory is another object
    // Constructor
    // for mContainsSubcategories == false, use the below constructor
    public Category(String categoryName, Boolean containsSubcategories){

    }
    // for mContainsSubcategories == true, use the below constructor
    public Category(String categoryName, Boolean containsSubcategories, Subcategory[] subcategoryList){

    }

    // GETTER METHODS
    /* ..................... */
}

基本上,我想要的是根据 boolean 值使用不同的构造函数。如果 boolean 值为真,则使用一个构造函数,如果为假,则使用另一个构造函数。我该怎么做?

最佳答案

创建一个 getinstance 方法:

public class Category{

    // STATE
    private String mCategoryName;
    private Boolean mContainsSubcategories;
    private Subcategory[] mSubcategoryList; // Subcategory is another object
    // Constructor
    public static Category getInstance(boolean mContainsSubcategories,String mCategoryName, Subcategory[] subcategoryList) {
        if (mContainsSubcategories){
            return new Category(mCategoryName);
        }else {
            return new Category(mCategoryName,subcategoryList);
        }
    }
    // for mContainsSubcategories == false, use the below constructor
    public Category(String categoryName){

    }
    // for mContainsSubcategories == true, use the below constructor
    public Category(String categoryName, Subcategory[] subcategoryList){

    }

    // GETTER METHODS
    /* ..................... */
}

并初始化它使用:

Category myCategory =    
      Category.getInstance(mContainsSubcategories,mCategoryName,subcategoryList); 
                  //instead of new Category

关于java - 根据 boolean 值制作2个构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40829994/

相关文章:

java - 需要帮助显示来自 url 或文件选择器的图像

java - 从非 Activity 类访问 Activity 组件

java - 使用数组让访客登录管理系统

java - 如何使 C++ 代码在 Java 组件上绘制

java - 不使用数据库快速访问数据?

Delphi:如何向后代添加不同的构造函数?

java - 类构造函数如何具有同一类的参数?

android - 如何修复以下错误 : A problem occurred evaluating project ':app' . > 没有方法签名:

android - ondraw 方法中位图的静态引用

c++ - 如何正确编写指针函数声明?