gpt4 book ai didi

java - 如何使方法接受包含任何数据类型对象的列表

转载 作者:搜寻专家 更新时间:2023-10-31 19:54:10 26 4
gpt4 key购买 nike

我的目标是检查消息的类型,然后相应地将它们转换为字符串并添加它们。我怎样才能做到这一点?

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));
}
}
}

最佳答案

您可以只传递一个对象列表——您甚至不需要 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));
}
}
}

附带说明:消息列表中包含空元素可能会引起潜在问题 - 因此您可能需要在循环中检查它。其他潜在的陷阱是:

  • this.messages 未初始化,添加消息会抛出 NullPointerException
  • 如果这是一个单例方法(例如 spring 服务),应避免使用实例变量

关于java - 如何使方法接受包含任何数据类型对象的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31693084/

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