假设有以下类
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<Message>
它仍然可能是 List<String>
。如果不检查所有元素,就无法区分这两者。
你能做的最好的事情就是看看它是否实现了 List
。欢迎使用类型删除。
关于java - 如何从 Class 对象获取泛型类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1391627/