我发现(至少)有两种方法可以在kotlin中引用一个类:
var tempRecipe: RecipeTemplate? = null
和
var tempRecipe2 = RecipeTemplate::class
两者之间有什么区别?
答案 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
有这种方法。