我的目标是检查类型,messages然后相应地将它们转换为字符串并添加它们.我怎样才能做到这一点?
public void addMessages(List<?> messages) {
if (messages != null) {
if (messages instanceof String) {
for (String message : messages) {
this.messages.add(message);
}
}
}
else {
for (Object message:messages) {
this.messages.add(String.valueOf(message));
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 3
您可以只传递一个对象列表 - 您甚至不需要 if/else,因为您始终可以在消息对象上调用“toString()”或“String.valueOf”:
public void addMessages(List<Object> messages) {
if (!CollectionUtils.isEmpty(messages)) {
for (Object message : messages) {
this.messages.add(String.valueOf(message));
}
}
}
Run Code Online (Sandbox Code Playgroud)
附带说明:消息列表中存在空元素可能会出现潜在问题 - 因此您可能需要在循环中检查该元素。其他潜在的陷阱是:
NullPointerException