Java 为什么要使用Uri.Builder
我正在使用Java 为什么要使用Uri.Builder,java,android,Java,Android,我正在使用StringBuilder创建URI以使用jsonapi进行迭代 有些人建议为此使用Uri.Builder,但无法解释原因。这难道不是多余的吗?假设您谈论的是android.net.Uri(而不是java.net.Uri),我认为有三个原因: 它为您进行URL编码,以防您的HTTP客户机/库/任何东西不这样做 它有添加查询参数的方便方法(例如appendQueryParameter) 它进行了一些验证(但是,正如文档所说,您不应该依赖于此) 我想说的是,这并不是你要开始圣战的东西,但我
StringBuilder
创建URI
以使用jsonapi进行迭代
有些人建议为此使用
Uri.Builder
,但无法解释原因。这难道不是多余的吗?假设您谈论的是android.net.Uri
(而不是java.net.Uri
),我认为有三个原因:
appendQueryParameter
)我想说的是,这并不是你要开始圣战的东西,但我不喜欢使用
Uri
,因为这个类是Android SDK的一部分-这使得你的组件自动依赖于Android操作系统(因此测试和维护有点困难)。你到底想实现什么?如果您试图访问一个API,那么有一些库可以很好地处理它,而无需做很多工作,例如翻新,有许多大型项目没有该库。这是一个很好的解释。如果您正在创建Uri,为什么不使用专门为其设计的工具呢?首先,Uri
和Uri
是不同的,而且Uri
很少用于网络。@poss:这是关于.net的,不是关于java.war的。Android代码通常非常依赖于Android。它将只用于线程调度。(无论如何,Uri
不是为联网而设计的,而是为本地资源而设计的,因为Android中的默认HTTP客户端现在是HttpUrlConnection
,它使用URL
,是纯java)。Uri不是为联网而设计的,而是为本地资源而设计的
——有趣的是,一个叫做android.net的软件包是的,我刚刚注意到了。这确实很有趣,但我真的不记得我上次在实际网络中使用它是什么时候了。我发现它更常用于ContentResolver
:联网要么涉及HttuUrlConnection,要么涉及更高级别的客户机,要么涉及诸如Volley或reformation之类的库,这两种方式都不使用Uri
interfaces@njzk2它不必直接接受Uri
。通常是:1。构建Uri
;2.将其转换为字符串
。再一次,我不提倡这种方法——只是看了好几遍。还有另一种用法是Uri
-intent过滤器