2013-07-09 23 views
2

我正在寻找是否可能不使这个在Java 7中:选择基于参数与Java收益类类型7

现在,我有这样的功能,像这样的一些服务,其中第三个参数会diffent在每一个:

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功能的一些办法,我想返回CLA的对象ss由第三个参数表示而不使用铸件?

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

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

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

可以修改'getDTO()'方法(尤其是它的签名)? –

+0

铸造有什么问题? –

+1

@BhavikShah类型安全 – Puce

回答

5

您可以指定方法泛型(注意这是独立于类generification - 它是在一个方法级别上进行),并返回泛型类型是这样的:

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

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

1

试试这个

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

尝试:

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