得到错误,这个类型的sharedPreferences编辑器没有定义double方法.Eclipse给了编辑器一个快速修复添加转换,但是当我这样做仍然给出错误时,为什么我不能放双.
代码:
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
if (TextUtils.isEmpty(editBl.getText().toString())) {
numberOfBl = 0;
} else {
numberOfBl = Integer.parseInt(editBl.getText().toString();
}
if (TextUtils.isEmpty(editSt.getText().toString())) {
tonOfSt = 0;
} else {
tonOfSt = Double.parseDouble(editSt.getText().toString());
}
SharedPreferences prefs = getSharedPreferences(
"SavedTotals", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("savedBl", numberOfBl);
editor.putDouble("savedSt", tonOfSt);
editor.commit();
}
Run Code Online (Sandbox Code Playgroud) 我有课
class Generic<T : SuperType>()
Run Code Online (Sandbox Code Playgroud)
这段代码不对
fun typeCheck(s: SuperType): Unit {
when(s){
is T -> //do some thin
}
}
Run Code Online (Sandbox Code Playgroud)
但是施放s类型T s as T显示警告 - 不安全的施法.
怎么检查s是什么类型T?
嘿,想要获取T 的类型,但我无法从实例中获取它,我必须从类参数中获取它,该怎么做?
abstract class ViewModelFragment<T : ViewModel>{
protected lateinit var mViewModel: T
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
mViewModel = ViewModelProviders
.of(scope)
.get(getGenericTClass())
// .get(mViewModel.javaClass) // not working either
}
inline fun<reified R> getGenericTClass() = R::class.java
}
Run Code Online (Sandbox Code Playgroud)
现在编译器抱怨
不能使用“T”作为精炼的类类型。请改用 Class。
我尝试使用以下解决方案:https : //stackoverflow.com/a/34463352/2163045但对我不起作用
我在最近的项目中将 java 文件转换为 kotlin 文件,问题是我遇到了以下代码的错误:
val map = dataSnapshot.getValue<Map<*, *>>(Map<*, *>::class.java)
Run Code Online (Sandbox Code Playgroud)
我在“Map<*, *>::class”下有一条红线,android studio 说:
类文字的左侧仅允许类
我应该用这段代码做什么?还有其他写法吗?
这是一个相关的 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()
Run Code Online (Sandbox Code Playgroud)
原始java代码片段:
String messageText = messageArea.getText().toString();
if(!messageText.equals("")){
Map<String, String> map = new HashMap<String, …Run Code Online (Sandbox Code Playgroud)