use*_*195 0 java generics reflection
我有一个公共方法.公共方法声明为
public Object createUIBean(Class c, HttpServletRequest request) {
Object o = c.newInstance() ;
setRequestParams(o, request) ;
return o ;
} // try catch block omitted for reasons of brevity
Run Code Online (Sandbox Code Playgroud)
调用此方法时,我必须转换返回结果.有没有办法我可以编写这个方法,所以我不需要转换返回的对象.
您可以使通用的方法,你可以使用泛型类型参数作为返回类型和参数的类型的类型参数c,Class(这是目前生).
public <T> T createUIBean(Class<T> c, HttpServletRequest request) {
T o = c.newInstance();
setRequestParams(o, request) ;
return o ;
}
Run Code Online (Sandbox Code Playgroud)
此外,Class.forName(c.getName()).newInstance() ;在c.newInstance()完成工作时创建一个简单的实例太多了.