2017-01-07 103 views
-5

其资源表示对象:其资源表示对象:

URL address = new URL(new URL(new URL("wow"), "2"), "3"); 

测试它在程序波纹管:

import java.net.*; 

    class NetTest { 

    public static void main(String[] args) throws Exception{ 

     URL url; 

     url = new URL(new URL(new URL("wow"), "2"), "3"); 

     System.out.println(url); 
    } 

} 

我得到

wow/3 

但在选项测试是:wow/2/3,wowwow/3/2

预先感谢您

+1

你的问题实在是不明确的,我测试你的计划,我得到这个错误:'异常在线程“主”“java.net.MalformedURLException:没有协议:哇!” –

+0

你尝试解决这个问题?线程中的异常“主”java.net.MalformedURLException:没有协议:哇?或者你想要别的? –

+0

是的,因为URL地址错了。但这是测试中的问题,我很困惑......如果我用合法的URL地址(例如http://www.domain.com)更改“哇”,我会得到“http:// www “.domain.com/3”与其中一个答案不相似... – Mpol

回答

0

如果我们使用一个有效的URL,而不是wow(比如说,http://example.com/wow),结果是http://example.com/3,这是正确的:在2替换wow3替换2。这就是相对URL的工作方式。

如果要堆叠起来,并得到http://example.com/wow/2/3,你需要/wow2结束:

import java.net.*; 

    class NetTest { 

    public static void main(String[] args) throws Exception{ 

     URL url; 

     url = new URL(new URL(new URL("http://example.com/wow/"), "2/"), "3"); 
     // --------------------------------------------------^------^ 

     System.out.println(url); 
    } 

} 
+0

所以测试的选项是错误的权利? **在测试中的选项是:哇/ 1/2,哇或哇/ 2/1 ** –

+0

好吧,他现在正确的选择:) –

+0

@LAIDANIYoucef:是的,他们是一个真正的移动目标。 : - | –