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