Как клонировать URI в Java - PullRequest
6 голосов
/ 24 мая 2010

Есть ли лучший способ получить копию (клон) URI, чем этот ужасный хак?

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

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

Ответы [ 2 ]

12 голосов
/ 24 мая 2010

URI являются классами неизменяемых значений, поэтому вам не нужно создавать копию. Но если вам действительно нужно, то ваш «хак» (это действительно не так уж и плохо) - это способ сделать это.

РЕДАКТИРОВАТЬ: я только заметил, что вы не используете java.net.URI ...

Из Eclipse SDK Javadocs ,

Как и String, URI является неизменяемым классом;

Этот класс также неизменен, и тот же совет применим. Обычно вам не нужно делать копию, просто используйте имеющийся у вас экземпляр URI. Причина, по которой это безопасно, заключается в том, что после создания объекта его нельзя изменить. Два разных клиента могут использовать один и тот же URI, не опасаясь, что он будет изменен другим.

Существуют методы для URI, которые обновляют компоненты URI (например, appendQuery()), но обновления выполняются для нового экземпляра URI - существующий URI не изменяется.

1 голос
/ 17 октября 2017

Просто напишите:

Uri newUri = Uri.parse(oldUri.toString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...