Java 为什么要使用Uri.Builder,而不仅仅是字符串和concatente参数呢?

Java 为什么要使用Uri.Builder,而不仅仅是字符串和concatente参数呢?,java,string,uri,Java,String,Uri,我只是想知道为什么建议使用Uri.Builder,而不是只使用字符串并将参数连接到它 有人能用一些简短的例子解释一下吗 这是因为效率(因为字符串是不可变的..等等(但是我们可以使用Stringbuilder或StringBuffer) 或者字符串涉及到任何安全问题?当你从一个遥远的角度来看它时,它是相当复杂的:有一个方案、一个权限、一个路径、一个查询。。。此外,您必须记住如何正确编码数据。所有这一切都是一件非常棘手的事情,而且是一项重复的任务 是为了让你远离这一切。它将正确地编码您的参数,并使用

我只是想知道为什么建议使用
Uri.Builder
,而不是只使用字符串并将参数连接到它

有人能用一些简短的例子解释一下吗

这是因为效率(因为字符串是不可变的..等等(但是我们可以使用
Stringbuilder
StringBuffer

或者字符串涉及到任何安全问题?

当你从一个遥远的角度来看它时,它是相当复杂的:有一个方案、一个权限、一个路径、一个查询。。。此外,您必须记住如何正确编码数据。所有这一切都是一件非常棘手的事情,而且是一项重复的任务

是为了让你远离这一切。它将正确地编码您的参数,并使用简单的语法正确地构建您的
URI

UriBuilder.fromUri("http://localhost/").path("{a}").queryParam("name", "{value}").build("segment", "value");

将生成以下URI:
http://localhost/segment?name=value
{a}
路径将被
构建
的第一个参数替换,
{value}
将被第二个参数替换。

当我们应该使用uriComponentBuider时。事实上,我正在做春晚。但当我选择这个的时候,我很难理解