【问题标题】:How to use a constructor that already exists?如何使用已经存在的构造函数?
【发布时间】:2018-06-14 14:00:38
【问题描述】:

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

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

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

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;
        }
    }
}

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

【问题讨论】:

  • HomeActivitiesOutSideActivities 需要是Activities 的内部类吗?你能把它们改成static class吗?

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


【解决方案1】:

有两种方法可以消除此错误。

  1. 创建两个内部类static

  2. 创建两个内部类independent(每个类在它自己的单独文件中)。

就是这样!

【讨论】:

    【解决方案2】:

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

    应该是:

    class HomeActivities {
        private String name;
        private int noOfChildren;
    
        public HomeActivities() { }
    

    所有其他建议也是有效的。您应该在单独的文件中外部化类。

    【讨论】:

      猜你喜欢
      • 2021-05-29
      • 1970-01-01
      • 2018-02-20
      • 2014-03-24
      • 1970-01-01
      • 2021-06-23
      • 2014-01-03
      • 1970-01-01
      • 2021-05-06
      相关资源
      最近更新 更多