如何在Java中克隆URI

时间:2010-05-24 10:46:19

标签: java

是否有更好的方法来获取URI的副本(克隆)而不是这个可怕的黑客?

import org.eclipse.emf.common.util.URI;

URI cloned = URI.createURI( originalURI.toString() );

2 个答案:

答案 0 :(得分:12)

URI是不可变的值类 - 所以你不应该真的需要复制。但是如果你真的需要,那么你的“黑客”(它真的不是那么糟糕)就是这样做的。

编辑:我刚注意到你没有使用java.net.URI ......

来自Eclipse SDK javadocs

  

与String类似,URI是一个不可变类;

该类也是不可变的,同样的建议也适用。您通常不需要复制,只需重用您拥有的URI实例即可。它是安全的原因是一旦创建了对象,它就无法更改。两个不同的客户端可以使用相同的URI,而不必担心它会被另一个客户端修改。

URI上有一些方法可以更新URI的组件(例如appendQuery()),但更新是在URI的新实例上完成的 - 现有URI未经修改。

答案 1 :(得分:0)

简单地写一下:

Uri newUri = Uri.parse(oldUri.toString());