我是Kotlin的新手.我想知道这两者之间的区别!!
,并?
在下面的代码.
我有两个片段首先使用!!
mCurrentDataset而另一个?
用于同一个变量.
if(!mCurrentDataset!!.load(mDataSetString.get(mCurrentDataSelectionIndex), STORAGE_TYPE.STORAGE_APPRESOURCE))
{
Log.d("MyActivity","Failed to load data.")
return false
}
Run Code Online (Sandbox Code Playgroud)
if(!mCurrentDataset?.load(mDataSetString.get(mCurrentDataSelectionIndex), STORAGE_TYPE.STORAGE_APPRESOURCE)!!)
{
Log.d("MyActivity","Failed to load data.")
return false
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我对lateinit和nullable变量感到困惑,哪一个用于变量.
lateinit var c: String
var d: String? = null
c = "UserDefinedTarget"
// if not added initialisation for c than throws UninitializedPropertyAccessException
if (c == "UserDefinedTarget") {
//do some stuff.
}
//not throws any exception whether d is initialise or not.
if(d == "UserDefinedTarget") {
//do some stuff
}
Run Code Online (Sandbox Code Playgroud) 在Kotlin中,标题和正文都是可选的; 如果类没有主体,可以省略花括号.
所以我们可以定义类,
class Empty
Run Code Online (Sandbox Code Playgroud)
这类课程有什么用?
在我的代码我定义下面的变量,
var obj_str: Object = "NEW" as Object
Run Code Online (Sandbox Code Playgroud)
这给了警告 This class shouldn't be used in Kotlin. Use kotlin.Any instead
所以,我需要知道任何类似于kotlin中的Object或其他任何东西?
还需要知道等待方法,如wait(),notify()等在Object类中可用但不在Any中,所以在kotlin中执行该操作?