用户没有定义无参数构造函数[重复]
Posted
技术标签:
【中文标题】用户没有定义无参数构造函数[重复]【英文标题】:users does not define no argument constructor [duplicate] 【发布时间】:2018-05-22 05:47:53 【问题描述】:我一直收到这个错误 “用户没有定义无参数构造函数。如果您使用 ProGuard,请确保这些构造函数没有被剥离。”什么都试过了,不知道为什么会这样。
public void retrievingUserInfo()
databaseUserID.addValueEventListener(new ValueEventListener()
@Override
public void onDataChange(DataSnapshot dataSnapshot)
//clearing the previous userinfo list
Users_Info.clear();
//iterating through all the nodes
for (DataSnapshot postSnapshot : dataSnapshot.getChildren())
//getting userinfo
users userinfo = postSnapshot.getValue(users.class);
//adding userinfo to the list
Users_Info.add(userinfo);
@Override
public void onCancelled(DatabaseError databaseError)
);
users.class
@Keep
public class users
public String user_id, address, contact, name;
public users(String user_id, String address, String contact,String name)
【问题讨论】:
【参考方案1】:JavaBeans require a no-argument constructor 出现。
当 Java 类根本没有构造函数时,编译器会自动添加一个默认的无参数构造函数。在类中定义任何构造函数的那一刻,默认的无参数构造函数就会消失。
在您的代码中,您的 users
类定义了这样一个包含参数的构造函数:
public users(String user_id, String address, String contact,String name)
只要该构造函数存在,并且您没有定义无参数构造函数,该类就不会有一个。
要解决这个问题,您要么需要从类中删除该构造函数,要么手动添加一个无参数构造函数:
public users()
【讨论】:
哇,谢谢!欣赏它! 但是这样做我只检索用户ID,并且不会检索用户ID下的所有数据,例如姓名,地址等。 您的班级成员姓名需要与数据库中孩子的姓名相匹配。或者您需要提供以 JavaBeans 方式匹配的 getter 和 setter。 “用户”:“73fsRy0znKRa5zFEl5XsJM4Q7Zf1”:“地址”:“Lokawi”,“联系人”:“999”,“姓名”:“Logiut”,“QnHe3Y7LHQXnqrUT85v18PAKhbm1”:“ address" : "Papar", "contact" : "852,525,", "name" : "Bantaton" , 这就是 json 数据的样子,我添加了另一个 public users() 但这次是构造函数,并且字符串如下: public class users private String user_id, address, contact, name;仍然只获取用户 ID。 您可能想问第二个格式正确的问题,解释您遇到的这个新问题。以上是关于用户没有定义无参数构造函数[重复]的主要内容,如果未能解决你的问题,请参考以下文章
ExpressMapper / EntityFramework - 没有为此对象定义无参数构造函数