【问题标题】:pass a class as a parameter to class than calling enumValues with the class that passed将类作为参数传递给类,而不是使用传递的类调用 enumValues
【发布时间】:2019-10-01 23:47:18
【问题描述】:

我正在尝试将值(类)传递给另一个类,并且在该类中我将使用带有enumValues<parameter>() 的参数(传递的类)

我尝试过传递通用 MyClass<T>() 而不是enumValues<T>() 但我得到“不能将 T 用作具体化,而是使用类”。

【问题讨论】:

    标签: android generics kotlin enums


    【解决方案1】:

    根据您使用它的上下文,您可以简单地将方法声明为内联并具体化:

    inline fun <reified T : Enum<T>> useEnumValues() {
      val values = enumValues<T>()
    }
    

    否则,如果您需要类参考:

    fun <T : Enum<T>> useEnumSet(enumClass: Class<T>) {
      val values = EnumSet.allOf(enumClass)
    }
    

    【讨论】:

      【解决方案2】:

      如果您的Class 值称为cls,则只需调用cls.enumConstants

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多