当前位置: 首页 > 知识库问答 >
问题:

在Java接口中,是否有方法返回嵌套在泛型类型中的枚举?

傅经业
2023-03-14

我正在寻找一种方法来返回嵌套在泛型类中的枚举类型。我的意思是:

public interface MapperClass<E, D> {

    D entityToDto(E entity);

    default List<D> entitiesToDto(List<E> entities) {
        return entities.stream()
                .map(this::entityToDto)
                .collect(Collectors.toList());
    }

    D.Enum mapString(String str);
}

换句话说,我的方法mapString()应该返回嵌套在泛型类型D中的枚举,有没有办法在Java中实现这一点?

共有1个答案

桓宜
2023-03-14

可能是这样的:

public interface MapperClass<E extends Enum<Test.TestEnum>, D extends Test> {
    E mapString(String a);
    ..
}

你的测试课程:

public class Test {
    ..
    enum TestEnum{
        A,B,C; //for demonstration purpose
    }
  ..
}

接口实现示例:

 MapperClass<Enum<Test.TestEnum>, Test> a=new  MapperClass<Enum<Test.TestEnum>, Test>() {
       ..
            @Override
            public Enum<Test.TestEnum> mapString(String a) {
                return Test411.A; 
            }
       ..
     }
 类似资料:
  • 现在我希望以泛型的方式使用这些类。 如何从方法“method1”和“method2”返回泛型类型(可以是猫或狗)。我有几个返回“T extends Animal”的方法,所以最好在方法级别或类级别中声明泛型类型。

  • Java中是否有一种方法可以通过一个方法的声明返回不同的类型? 我希望此方法返回一个对象,并在函数调用时将其转换为正确的类型。这就是我的想法,但它不是这样工作的。我是否需要某种通用返回类型来执行此操作?解决这个问题的最佳方法是什么?

  • 问题内容: 我想到的是一个涉及嵌套枚举的数据结构,因此我可以执行以下操作: 如果有方法声明: 然后我可以说(适当): 这是我想出的: 和界面: 我想我只是想用Java来完成这种事情的最佳方法,或者是否需要编写一堆if语句来处理单个Drink.values()。有什么帮助吗? 问题答案: 首先,您提供的示例代码在某种程度上违反了“德米特律”-因为COLUMBIAN实例字段仅用于检索标签。同样,通过这

  • 我有由OpenAPI制作的带有Mybatis和Rest API的SpringBoot应用程序,这是我的swagger文件: 这是我的控制器代码: 以下是生成的模型: 当我像这样使用time-MyData时,结果得到null: 当一些数据是字符串类型时,我从数据库中获取一些正常数据。这里使用对象类型的正确方法是什么?

  • 问题内容: 背景 我曾经写过这种方法: 应该这样称呼它: 这很好用(尽管我在研究当前容易出错的问题时在这里的答案中已经看到)。 目前的情况 无论如何,现在我正在编写以下代码(在扩展javax.servlet.jsp.tagext.TagSupport的类中): 目的是可以这样称呼: 我的评估方法中的代码显然不起作用。的第二个参数应该是Class对象。这导致我: 我的问题 如何获得通用(返回)类型的

  • 问题内容: 我想在嵌套的静态接口中使用泛型类。我的目标是做这样的事情: 但是我得到一个错误:无法对非静态类型T进行静态引用。如果进行一些更改(如下所述),我可以在接口内部使用泛型,但是我想避免使用此方法,因为编写同一个类两次:一次用于MyClass,一次用于MyInterface。 谢谢。 编辑 :我想这样做: 要么 问题答案: 静态嵌套类或嵌套接口(顺便说一句,始终是静态的)与其外部类(或接口)