java.lang.Long不能转换为java.lang.String android studio settext



有人知道如何解决这个问题吗?

java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String

误差线

String data = (String) dataSnapshot.child("money").getValue();

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
final String userUid = user.getUid();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
ref.child("Users").child(userUid).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
ERROR LINE     String data = (String) dataSnapshot.child("money").getValue();
moneyText.setText(data);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});

在错误行中,您试图将一个对象强制转换为另一个不受支持的对象。正确的方法是在String类中使用valueOf方法,如下所示:

String data = String.valueOf(dataSnapshot.child("money").getValue());

以这种方式更改代码

String data = ((Long) dataSnapshot.child("money").getValue()).toString();

你的数据很长,你正在转换字符串

长字符串示例:

long testL ong = 10;
String stringLoc = Long.toString(testLong );
System.out.println("str : " + stringLoc );

在您的代码中,尝试将Long强制转换为String。你可以试试下面的代码。

String data = Long.toString(dataSnapshot.child("money").getValue());

您的dataSnapshot.child("money").getValue()是Long类型,您可以直接转换为字符串,可以像下面这样使用以避免错误。

String data = String.valueOf(dataSnapshot.child("money").getValue());

相关内容