我有一个代码:
RequestHandler.java
public class RequestHandler extends BaseWebSocketRequestHandler {
...
public void handle(Request request)
getData(request, Model.class)
...
}
BaseHandler.java
public abstract class BaseHandler {
...
<
T > void getData(Request request, Class < ? > clazz) {
...
?
? ? ? ?
...
}
...
}
如何将请求从调用方法转换为 Model.class。现在我得到了LinkedHashMap
请帮助。谢谢
最佳答案
使用反射,您可以获取类的构造函数并获取新实例。 在类上创建一个新实例是可能的,但通常构造函数应该这样做很糟糕 运行。
您还可以使用该类将对象转换为它,T。
// type parameter
// | result: Model Model.class
// | | |
public <T> T getData(Request request, Class<T> clazz) {
Object value = map.get(clazz); // A map of class to class instance.
if (value != null) {
return clazz.cast(value);
}
T object = clazz.getConstructor().newInstance();
return object;
}
关于java - 从传递的参数将对象转换为类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58930372/