gpt4 book ai didi

java - 如何从 Class 对象获取泛型类型?

转载 作者:行者123 更新时间:2023-12-02 00:54:43 27 4
gpt4 key购买 nike

假设有以下类

public class Message {
// some code
}

以及 Spring Validator 实现(无需 Spring 知识)

public class MessageValidator implements Validator {

public boolean supports(Class clazz) {
if(clazz.isAssignableFrom(Message.class))
return true;
else if(<ANSWER>)
return true;

return false;
}

public void validate(Object command, Errors errorArray) {
if(command instanceof List)
for(Message message: (List) command)
validateMessage(message);
else
validateMessage((Message) command);
}

public void validateMessage(Message message, Errors errorArray) {
// do validation Message object
}

}

通知支持方法。要在 中放入什么以支持消息列表 - List

问候,

最佳答案

通用类型参数信息(大部分)不会在运行时保留,因此您没有一种简单的方法来访问它。基本上,即使它说 List<Message>它仍然可能是 List<String> 。如果不检查所有元素,就无法区分这两者。

你能做的最好的事情就是看看它是否实现了 List 。欢迎使用类型删除。

关于java - 如何从 Class 对象获取泛型类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1391627/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com