我想有一种很不错的方法,但是我看不到它。
假设我有class Bull: Dog
类。如果我有Set<Bull> bulls
和一个函数fun doSomeCool(vararg input:Dog)
,该如何处理bulls
以便将其传递给doSomeCool
?例如,以下操作无效:
doSomeCool(*bulls.toTypedArray())
更新
很抱歉,我向后提出了这个问题。轻微但重要的变化:
我上过课:
class Dog(val name:String)//there are actually more properties
class Bull(name:String):Dog(name){
@PrimaryKey(autoGenerate = true)
var id: Int = 0//not used in equals function
}
那我有一套
val dogs:HashSet<Dog>=...
然后我需要将狗传递给以下方法
fun insert(vararg bull:Bull){...}//insert into a DB of Bulls
所以我真的需要以某种方式神奇地从Dog到Bull贬低-因为除了自动生成的主键外,它们实际上是相同的类型,顺便说一句,它不用于等号(我什至不覆盖等号) ,Bull使用Dog的实现)。有没有一种简便的方法,而不必在狗中创建每个元素的新闻实例?