Firebase是否支持覆盖的setter方法?

时间:2017-12-06 18:54:13

标签: android firebase firebase-realtime-database

你可以在Java对象中使用覆盖的setter方法(例如,一个接受String对象的方法和一个接受int的方法)?如果要从Firebase数据库加载和读取对象? Firebase知道使用哪个或者它们都被视为int / String吗?

e.g:

public void setAppointStartTime(String appointStartTime) {
    this.appointStartTime = appointStartTime;
}

public void setAppointStartTime(int minutes) {
    this.appointStartTime = String.format("%02d",((minutes - (minutes % 60)) / 60)) + ":" + (String.format("%02d",(minutes%60)));
}

2 个答案:

答案 0 :(得分:0)

来自the docs

  

对于基本写入操作,您可以使用setValue()将数据保存到   指定引用,替换该路径上的任何现有数据。您可以   使用此方法:

     
      
  • 传递与可用JSON类型对应的类型,如下所示:      
        
    • 字符串
    •   
    •   
    •   
    • 布尔
    •   
    • 地图
    •   
    • 列表
    •   
    • 通过   自定义Java对象,如果定义它的类具有默认值   不带参数的构造函数,并且具有公共getter   要分配的属性。
    •   
  •   

答案 1 :(得分:0)

Firebase SDK遵循JavaBean模式来确定类中的属性。 JavaBeans属性是单一类型,因为它们的getter方法将具有单个返回类型。

据我记忆,您的示例setter会导致客户端生成错误,因为它不知道appointStartTime属性的类型。