我在最近的项目中将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代码片段:
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代码段:
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-Android Studio Kotlin错误与dataSnapshot.getValue全部内容,希望文章能够帮你解决java-Android Studio Kotlin错误与dataSnapshot.getValue所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)