open class Device
class Router : Device()
interface GenericDAO<T, ID>
open class DeviceDAO<T : Device> : GenericDAO<T, Long>
class RouterDAO : DeviceDAO<Router>()
我需要一个功能获取T和ID实际类型
https://github.com/pluses/ktypes
val genericDAOType = RouterDAO::class.starProjectedType.findSuperType(GenericDAO::class)!!
println(genericDAOType.arguments.first())// Router
println(genericDAOType.arguments[2])// Long