我是Firebase数据库的新手,我正在遵循谷歌的文档从我的数据库中检索数据。
我有这样的结构:
root/ | |--- 82JWZZZd*** | | | |--- profile | | | |--- id: 1 | |--- name: Arnold Schwarzenegger | |--- age: 70 | |--- GB3FDPiw*** | |--- profile | |--- id: 1 |--- name: Sylvester Stallone |--- age: 71
public class Profile{
private int id;
private String name;
private int age;
public Profile(){
// Default constructor required for calls to DataSnapshot.getValue(User.class)
}
public Profile(int id, String name, int age){
this.id = id;
this.name = name;
this.age = age;
}
}
DatabaseReference reference = FirebaseDatabase.getInstance().getReference(getUid() + "/profile");
reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()){
Toast.makeText(getContext(), "" + dataSnapshot.getValue(),
Toast.LENGTH_LONG).show();
// Profile prf = dataSnapshot.getValue(Profile.class);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
Profile prf = dataSnapshot.getValue(Profile.class);
我的应用程序崩溃。
我不明白与谷歌文档的区别。有人能帮帮我吗?我太纠结了!
错误是:
com.google.firebase.database.DatabaseException: Class com.companyname.myApp.FirstFragment$Profile is missing a constructor with no arguments
如果您有私有字段,则需要添加getter和setter。如果不需要setter和getter,请使用公共字段。
此外,由于配置文件类嵌套在片段中,因此需要将其标记为static
。So公共静态类配置文件{
。还请参阅GitHub上的以下注释:https://github.com/firebase/firebaseui-android/issues/46#issuecomment-167373575
我理解超类/子类之间的关系以及强制转换是如何工作的。但是,我的问题是,如果知道中间有一个类,你能把一个超类转换成一个特定的子类吗?例如,如果我有一个动物类对象包含一个BigDog对象,我可以将该对象强制转换为Dog吗?如果BigDog中有Dog中不存在的方法怎么办? 简而言之,你当然可以说超类对象是子类对象,但为什么你可以反转呢? 转念一想, Java在调用方法时检查的是:引用(DOG)是否有引用
例如:Date值为:“dateCollected”:fri Jul 07 00:00:00 IST 1989, 但它只服用星期五而不是整个日期。
问题内容: 我有一些这样的代码。 超级班 子类 所以问题是我可以将超类的对象转换为子类吗?这个问题对我来说是正确的吗? 但它给Class Cast异常。 问题答案: 您可以将子类转换为超级类,反之亦然。如果“车辆”是“超级类”,而“汽车”是子类,则所有“汽车”(子代)都是“汽车”(“超级”),但并非所有“车辆”都是“汽车”。
问题内容: 好吧,如果我有这段代码 一切正常,但是 运行后给出以下错误(Eclipse没有给出任何错误) 虽然,当我这样做 要么 再没有错了。 为什么必须将其首先转换? 问题答案: 声明对象时,可以通过检查对象是否实际上已强制转换为实例来判断。由于取消装箱约定,可以再次将其强制转换为。之后,该值可以转换为。 但是,没有从Double实例转换为的取消装箱约定,因此,如果您尝试这样做,则运行时将发出。
首先,我是SpringWebFlux的新手,正在尝试建立一个反应式spring启动项目的POC。我有一个用例,需要将检索到的实体类(PartyDTO)转换为Mono对象(Person:这是一个没有构造函数的第三方业务对象,我无法修改它)。我在谷歌上搜索,但找不到与我的用例相匹配的答案。 第三方对象: 我的课程如下: 调用我的存储库的服务类。 如上图所示,我尝试将平面图与我的自定义映射器一起使用,但
问题内容: 我有2个类,分别称为超类和子类,我试图将子类对象转换为超类,但是当我想使用超类的子类对象时,它似乎不起作用。请帮忙解释。谢谢。这些是代码: 当我尝试使用子类的displaySub()时出现错误 问题答案: 超类不能知道子类方法。 这样考虑: 你有超一流的 你有两个子类,即:, 两个子类将具有相同的特征,例如 该超意识到这些,因为所有S能说话(即使它不知道此操作的确切机制) 一但可以做的