3

我正在寻找是否可以在 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);
4

3 回答 3

9

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

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

有关更多信息,请参阅 Java 教程中的通用方法部分。

于 2013-07-09T09:51:11.653 回答
2

尝试:

protected <T> T getMessage(Object param, Class<T> clazz);
于 2013-07-09T09:52:03.097 回答
1

尝试这个

protected <T> T getMessage(Object param, Class<T> clazz);
于 2013-07-09T09:51:49.147 回答