java.lang.Long 无法投射到 java.lang.String android studio settext
java.lang.Long cannot be cast to 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 data = ((Long) dataSnapshot.child("money").getValue()).toString();
您的数据很长,您正在转换为字符串
在您的错误行中,您试图将一个对象转换为另一个不受支持的对象。这样做的正确方法是在字符串 class 中使用 valueOf
方法,如下所示:
String data = String.valueOf(dataSnapshot.child("money").getValue());
长字符串示例:
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());
有谁知道如何解决这个问题?
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 data = ((Long) dataSnapshot.child("money").getValue()).toString();
您的数据很长,您正在转换为字符串
在您的错误行中,您试图将一个对象转换为另一个不受支持的对象。这样做的正确方法是在字符串 class 中使用 valueOf
方法,如下所示:
String data = String.valueOf(dataSnapshot.child("money").getValue());
长字符串示例:
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());