gpt4 book ai didi

java - dataSnapshot.getValue 的 Android Studio Kotlin 错误

转载 作者:太空宇宙 更新时间:2023-11-03 13:42:36 24 4
gpt4 key购买 nike

我在最近的项目中将一个 java 文件转换为 kotlin 文件,问题是我在使用这段代码时遇到错误:

 val map = dataSnapshot.getValue<Map<*, *>>(Map<*, *>::class.java)

我在“Map<*, *>::class”下有一条红线,android studio 说:

Only classes are allowed on the left hand side of a class literal

我应该如何处理这段代码?有没有其他的写法?

这是一个相关的 kotlin 代码 fragment :

val messageText = messageArea!!.text.toString()
if (messageText != "") {
val map = HashMap<String, String>()
map.put("message", messageText)
map.put("user", UserDetails.username)
reference1!!.push().setValue(map)
reference2!!.push().setValue(map)
messageArea!!.setText("")
}
}
reference1!!.addChildEventListener(object : ChildEventListener {
override fun onChildAdded(dataSnapshot: DataSnapshot, s: String) {
val map = dataSnapshot.getValue<Map<*, *>>(Map<*, *>::class.java)
val message = map.get("message").toString()
val userName = map.get("user").toString()

原始java代码 fragment :

String messageText = messageArea.getText().toString();

if(!messageText.equals("")){
Map<String, String> map = new HashMap<String, String>();
map.put("message", messageText);
map.put("user", UserDetails.username);
reference1.push().setValue(map);
reference2.push().setValue(map);
messageArea.setText("");
}
}
});

reference1.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Map map = dataSnapshot.getValue(Map.class);
String message = map.get("message").toString();
String userName = map.get("user").toString();

最佳答案

尝试转换它。

val map = dataSnapshot.getValue(Map::class.java) as Map<String, String>

您可能想要抑制“未经检查的类型转换”的警告,但没关系。

关于java - dataSnapshot.getValue 的 Android Studio Kotlin 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48705103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com