如何将Java中返回String类型的build方法修改为返回List<String>类型的方法
修改build方法返回类型为List的解决方案
没问题,我来帮你调整这个build方法,让它返回List<String>类型,完美适配调用方的需求。
原方法的问题在于,它把三个独立的URI直接拼接成了一个长字符串,这显然不是调用方需要的列表结构。我们可以这样修改:
- 先把方法的返回类型从
String改为List<String> - 用
ArrayList<String>来存储每个独立的URI,替代原来的StringBuilder - 每个URI单独添加到列表中,而不是拼接在一起
- 处理
Uri不包含"newString"的情况,返回空列表(避免返回null引发调用方的空指针问题)
修改后的完整代码如下:
import java.util.ArrayList; import java.util.List; public List<String> build(String uri, String id) { List<String> docUris = new ArrayList<>(); if (uri.contains("newString")) { docUris.add("user-profile1/users/" + id + "/user.xml"); docUris.add("user-profile2/users/" + id + "/user.xml"); docUris.add("user-profile3/users/" + id + "/user.xml"); } return docUris; }
测试验证
当传入的id为"1"时,这个方法会返回如下的List<String>:["user-profile1/users/1/user.xml", "user-profile2/users/1/user.xml", "user-profile3/users/1/user.xml"]
完全匹配你的期望输出。
另外我还做了几个小细节优化:
- 把参数名
Uri、Id改成符合Java命名规范的小写开头uri、id - 用字符串拼接替代
StringBuilder的append(你也可以用String.format让代码可读性更强,比如String.format("user-profile1/users/%s/user.xml", id)) - 默认返回空列表而非null,调用方处理起来更安全
内容的提问来源于stack exchange,提问作者user17113294
相关产品推荐
相关产品推荐

