如何使用已经存在的构造函数?

时间:2018-06-14 14:00:39

标签: java android firebase constructor google-cloud-firestore

我正在为使用Firebase的儿童构建一个简单的应用程序,我不断收到此错误:

Android Firebase Database exception: not define a no-argument constructor

我有一个类活动和另外两个辅助类HomeActivities和OutsideActivities。这是我的课程代码:

public class Activities {
    private String type;
    private int count;

    public Activities() { }

    public Activities(String type, int count) {
        this.type = type;
        this.count = count;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    class HomeActivities {
        private String name;
        private int noOfChildren;

        HomeActivities() { }

        public HomeActivities(String name, int noOfChildren) {
            this.name = name;
            this.noOfChildren = noOfChildren;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getNoOfChildren() {
            return noOfChildren;
        }

        public void setNoOfChildren(int noOfChildren) {
            this.noOfChildren = noOfChildren;
        }
    }

    class OutsideActivities {
        private String name;
        private int noOfChildren;

        public OutsideActivities() { }

        public OutsideActivities(String name, int noOfChildren) {
            this.name = name;
            this.noOfChildren = noOfChildren;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getNoOfChildren() {
            return noOfChildren;
        }

        public void setNoOfChildren(int noOfChildren) {
            this.noOfChildren = noOfChildren;
        }
    }
}

请查看所有构造函数。即使我已经在每个类中定义了正确的构造函数,我也会收到此错误。怎么解决这个?请帮帮我。

2 个答案:

答案 0 :(得分:2)

有两种方法可以摆脱这个错误。

  1. 制作两个内部类static

  2. 创建内部类independent(每个类都在其自己的separte文件中)。

  3. 就是这样!

答案 1 :(得分:1)

HomeActivities()的构造函数具有默认可见性。错过了公共关键字。当构造函数不公开时,数据库ORM提供程序无法实例化对象。

应该是:

class HomeActivities {
    private String name;
    private int noOfChildren;

    public HomeActivities() { }

所有其他建议也有效。您应该将类​​外部化为单独的文件。