java - 传递一个类参数并返回该类的对象(java)

标签 java generics reflection

我有一个公共(public)方法。公共(public)方法声明为

public Object createUIBean(Class c, HttpServletRequest request) {
  Object o = c.newInstance() ;
  setRequestParams(o, request) ;
  return o ;
} // try catch block omitted for reasons of brevity

调用此方法时,我必须转换返回结果。有没有办法可以编写这个方法,这样我就不需要转换返回的对象。

最佳答案

可以让方法泛型化,可以使用泛型类型参数作为返回类型,类型参数为参数的类型 c, Class (目前是原始的)。

public <T> T createUIBean(Class<T> c, HttpServletRequest request) {
  T o = c.newInstance();
  setRequestParams(o, request) ;
  return o ;
} 

此外,Class.forName(c.getName()).newInstance() ; 对于创建一个简单的实例来说太多了,而 c.newInstance() 就可以做到工作。

关于java - 传递一个类参数并返回该类的对象(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25127240/

相关文章:

java - JFrame 调用正在打开两个 JFrame

java - 随机矩形不想处于另一个位置

c# - '<null>' 类型的值不能用作默认参数,因为没有到 'T' 类型的标准转换

objective-c - 使用 Objective-C 泛型作为独立函数?

java - 反射访问内部类时的异常

JavaFx:运行时检查 PathTransition 的当前位置

java - Java中轮流使用按钮

swift - 间接调用在 Swift 3 中调用了错误的专用泛型函数

android - 由意外的 DEX 解析的类;

Java 反射 : Create an implementing class