Kotlin中类引用之间的差异

时间:2018-05-16 11:48:57

标签: types reference kotlin

我发现(至少)有两种方法可以在kotlin中引用一个类:

var tempRecipe: RecipeTemplate? = null

var tempRecipe2 = RecipeTemplate::class

两者之间有什么区别?

2 个答案:

答案 0 :(得分:1)

var tempRecipe: RecipeTemplate? = null这里你要创建一个变量,它将存储RecipeTemplate实例的引用,该引用可以为null。

var tempRecipe2 = RecipeTemplate::class在这里,您要创建一个值为type KClass的变量。

以上两个与java相同的第一个就像创建一个varibale来存储像RecipeTemplate tempRecipe = RecipeTemplate()这样的实例 第二个就像Class tempRecipe2 = RecipeTemplate.class

答案 1 :(得分:0)

var tempRecipe: RecipeTemplate? = null 表示tempRecipe引用对象为RecipeTemplate

var tempRecipe2 = RecipeTemplate::class 表示tempRecipe2是对KClass

的对象的引用

因为参考文献不相同:

tempRecipe上,您可以调用RecipeTemplate拥有的所有方法。在tempRecipe2,您无法做到。但是你可以调用方法cast,因为KClasses有这种方法。