Unk*_*pus 13 java performance uri
A uri可以通过两种方式创建:
URI uri = new URI("https://www.google.com/");
Run Code Online (Sandbox Code Playgroud)
要么,
URI uri = URI.create("https://www.google.com/");
Run Code Online (Sandbox Code Playgroud)
我想知道哪个是更好的做法.我没有注意到任何性能差异,我已经阅读了文档,但是有点难以理解.对此有任何见解表示赞赏.
Ank*_*hal 15
阅读文档,它的用法不同.
通过解析给定的字符串来创建URI.这个方便工厂方法就好像通过调用{@link URI(String)}构造函数一样工作; 构造函数抛出的任何{@link URISyntaxException}都会被捕获并包装在新的{@link IllegalArgumentException}对象中,然后抛出该对象.
提供此方法是为了在已知给定字符串是合法URI的情况下使用,例如对于在程序中声明的URI常量,因此它将被视为字符串不能解析的编程错误.直接抛出{@link URISyntaxException}的构造函数应该用于从用户输入或可能容易出错的其他源构造URI的情况.
@param str要解析为URI的字符串
Run Code Online (Sandbox Code Playgroud)* @return The new URI * * @throws NullPointerException * If {@code str} is {@code null} * * @throws IllegalArgumentException * If the given string violates RFC 2396 */
public static URI create(String str) {
try {
return new URI(str);
} catch (URISyntaxException x) {
throw new IllegalArgumentException(x.getMessage(), x);
}
}
Run Code Online (Sandbox Code Playgroud)
没有区别,因为URI.create将调用委托给构造函数。唯一真正的区别是将构造函数抛出的(已检查异常)URI.create(String)包装为(未检查异常)。因此,如果您不想处理已检查的异常,最好只调用.URISyntaxExceptionIllegalArgumentExceptionURI.create(String)
下面是 JDK 中的一段代码:
public static URI create(String str) {
try {
return new URI(str);
} catch (URISyntaxException x) {
throw new IllegalArgumentException(x.getMessage(), x);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16578 次 |
| 最近记录: |