Java:有没有办法在枚举中获取具有不同返回类型的方法?

用户名

我知道不可能将泛型与Enums一起使用,但是我正在寻找一种方法来实现具有不同返回类型的枚举的方法

例如,我有以下枚举:

enum TestEnum {

    TEST_INTEGER() {
        @Override
        public Integer getValue() {
            return 123;
        }
    },

    TEST_STRING() {
        @Override
        public String getValue() {
            return "Test";
        }
    };

    public abstract Object getValue();
}

在这种情况下TEST_INTEGERTEST_STRING是的实现TestEnum这就是为什么该方法getValue()具有返回类型Object而不是返回类型Integer或者调用String时的getValue()原因。这意味着在每种情况下我都必须转换为相关的Classtype。

有没有更好的方法来直接获得不同的Classtype?

汤姆·布尔格

是的,java允许“减少”返回类型(请参阅此处)。

但是在您的上下文中,从概念上讲这是没有意义的!

考虑到

TestEnum someEnum = ...
Integer val = someEnum.getValue();

编译器应该如何知道您实际上已将哪个枚举常量分配给该值?

因此,编译器只能理解:

 Integer val = TestEnum.TEST_INTEGER.getValue();

但是好了,如果你只知道它是一些TestEnum的情况下,你正在处理?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP:有没有办法获取方法的返回类型?

来自分类Dev

有没有办法让枚举返回UIViewController

来自分类Dev

有没有办法从扩展方法中获取通用类型?

来自分类Dev

有没有办法返回作为子类的类型?

来自分类Dev

有没有办法从列表中获取具有特定属性的所有项目

来自分类Dev

有没有办法在代码中重用具有不同值的函数?

来自分类Dev

有没有办法从其完整类型中获取模板类的类型?

来自分类Dev

有没有办法告诉方法它应该返回什么值类型?

来自分类Dev

有没有办法在抽象类中具有可选方法?

来自分类Dev

有没有办法从非静态方法获取参数类型?

来自分类Dev

在C ++中,有没有办法从具有返回类型为string&的函数中不返回任何内容?

来自分类Dev

有没有办法在基类的函数中获取派生类的类型?

来自分类Dev

Android/Java:有没有办法存储方法?

来自分类Dev

有没有办法从方法中调用对象?

来自分类Dev

有没有办法在没有名称空间的C ++中嵌套枚举?

来自分类Dev

Java8:有没有办法从类方法引用中获取实例方法引用?

来自分类Dev

有没有办法在方法声明中定义两个泛型类型

来自分类Dev

有没有办法在java中的ResultSet变量中获取特定数据

来自分类Dev

有没有办法从方法更新/返回数组中的元素?

来自分类Dev

有没有办法从方法更新/返回数组中的元素?

来自分类Dev

有没有办法让操作员=枚举?

来自分类Dev

有没有办法打印枚举值?

来自分类Dev

有没有办法使用scrapy获取python中具有class属性的所有标签?

来自分类Dev

有没有办法在C#中获取外部方法的函数指针

来自分类Dev

有没有办法在C#中动态获取方法名称?

来自分类Dev

有没有办法在C#中动态获取方法名称?

来自分类Dev

有没有办法在C#中获取extern方法的函数指针

来自分类Dev

有没有办法将枚举rawValue强制转换为其类型?

来自分类Dev

有没有办法为枚举类型实现一元运算符?

Related 相关文章

  1. 1

    PHP:有没有办法获取方法的返回类型?

  2. 2

    有没有办法让枚举返回UIViewController

  3. 3

    有没有办法从扩展方法中获取通用类型?

  4. 4

    有没有办法返回作为子类的类型?

  5. 5

    有没有办法从列表中获取具有特定属性的所有项目

  6. 6

    有没有办法在代码中重用具有不同值的函数?

  7. 7

    有没有办法从其完整类型中获取模板类的类型?

  8. 8

    有没有办法告诉方法它应该返回什么值类型?

  9. 9

    有没有办法在抽象类中具有可选方法?

  10. 10

    有没有办法从非静态方法获取参数类型?

  11. 11

    在C ++中,有没有办法从具有返回类型为string&的函数中不返回任何内容?

  12. 12

    有没有办法在基类的函数中获取派生类的类型?

  13. 13

    Android/Java:有没有办法存储方法?

  14. 14

    有没有办法从方法中调用对象?

  15. 15

    有没有办法在没有名称空间的C ++中嵌套枚举?

  16. 16

    Java8:有没有办法从类方法引用中获取实例方法引用?

  17. 17

    有没有办法在方法声明中定义两个泛型类型

  18. 18

    有没有办法在java中的ResultSet变量中获取特定数据

  19. 19

    有没有办法从方法更新/返回数组中的元素?

  20. 20

    有没有办法从方法更新/返回数组中的元素?

  21. 21

    有没有办法让操作员=枚举?

  22. 22

    有没有办法打印枚举值?

  23. 23

    有没有办法使用scrapy获取python中具有class属性的所有标签?

  24. 24

    有没有办法在C#中获取外部方法的函数指针

  25. 25

    有没有办法在C#中动态获取方法名称?

  26. 26

    有没有办法在C#中动态获取方法名称?

  27. 27

    有没有办法在C#中获取extern方法的函数指针

  28. 28

    有没有办法将枚举rawValue强制转换为其类型?

  29. 29

    有没有办法为枚举类型实现一元运算符?

热门标签

归档