是否可以传递类类型并用作返回类型?

Pha*_*ate 3 java generics

我有一个使用解析器的方法,解析器调用示例是:

SpecificClass ret = parser.parse(getOutputStream(),SpecificClass.class);
Run Code Online (Sandbox Code Playgroud)

请注意,返回类型与指定为paramether的返回类型相同.

现在,我想创建一个方法来执行此调用并返回我想要的特定类类型.例如:

public $$some construct I don't know$$ invokeParser(Class<?> c){
      //... operations....
      return parser.parse(getOutputStream(),c); //c works, I can pass it
}
Run Code Online (Sandbox Code Playgroud)

可能吗?

rge*_*man 12

您可以使方法通用.用你的类型参数声明<T>并返回一个T.

public <T> T invokeParser(Class<T> c) {
Run Code Online (Sandbox Code Playgroud)