我正在寻找是否有可能在 Java 7 中做到这一点:

现在,我在几个服务中都有这样的功能,每个服务中的第三个参数都不同:

final RequestDTO1 requestDTO = (RequestDTO1) getDTO(param, RequestDTO1.class);

final RequestDTO2 requestDTO = (RequestDTO2) getDTO(param, RequestDTO2.class);

final RequestDTO3 requestDTO = (RequestDTO3) getDTO(param, RequestDTO3.class);

这是 getDTO 签名:
protected Object getMessage(Object param, Class clazz);

有什么方法可以指示 getDTO 函数,我想在不使用转换的情况下返回由第三个参数指示的类的对象?
final RequestDTO1 requestDTO = getDTO(param, RequestDTO1.class);

final RequestDTO2 requestDTO = getDTO(param, RequestDTO2.class);

final RequestDTO3 requestDTO = getDTO(param, RequestDTO3.class);

最佳答案

您可以指定方法是泛型的(注意这独立于类的泛化——它是在方法级别完成的),并像这样返回泛型类型:

protected <T> T getMessage(Object param, Class<T> clazz);

有关更多信息,请参阅 Java 教程中的 Generic methods 部分。

关于java - 使用 Java 7 根据参数选择返回类类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17545170/

10-10 05:50