使用Java 7选择基于参数的返回类类型

时间:2013-07-09 09:49:02

标签: java java-7

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

3 个答案:

答案 0 :(得分:6)

您可以指定方法是通用的(请注意,这与类生成无关 - 它是在方法级别完成的),并返回如下通用类型:

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

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

答案 1 :(得分:1)

试试这个

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

答案 2 :(得分:1)

尝试:

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