2012/12/30

android.net.Uri と java.net.URI の変換

android.net.Uri と java.net.URI の違い で java.net.URI と android.net.Uri はほぼ同じであると書きましたが、継承関係にあるわけでもなく、変換用の関数が用意されているわけでもありません。

では、これらは変換出来ないのかというと、そうではありません。
もともと文字列で表現されるアドレスのパーサですから(正確にはパーサを内包したコンテナというべきでしょうか?)、文字列にしてしまえば相互に変換することができます。

String path = "http://anonymous@192.168.0.1:8888/main.html?id=00001#fragment";
Uri androidUriA = Uri.parse(path);
URI javaUriA = URI.create(androidUriA.toString());

Log.i(TAG, "A " + javaUriA.toString());

URI javaUriB = URI.create(path);
Uri androidUriB = Uri.parse(javaUriB.toString());

Log.i(TAG, "B " + androidUriB.toString());

0 件のコメント: