免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2038 | 回复: 3
打印 上一主题 下一主题

继续虚心求教:java.net.URL的set方法真的能用吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-12 14:33 |只看该作者 |倒序浏览
环境:javac 1.6.0_03
import java.net.URL;

JDK源码片段:
public final class URL ……
protected void set(String protocol, String host,
         int port, String file, String ref) {……}

问:既然URL是final(不可被扩展),set作为protected方法就没办法在我们编程中使用。我这样想对吗?如果不对,为什么?

JDK中文帮助中说:“这不是一个公共方法,所以只有 URLStreamHandler 才能修改 URL 字段。其他情况下,URL 为常量。”那么,怎样用URLStreamHandler修改 URL 字段呢?可否举个例子编码说明一下?

以上困惑,请各位同道先进指点迷津,谢谢大家!

[ 本帖最后由 strato 于 2007-10-14 20:58 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-10-12 14:48 |只看该作者
调用URLStreamHandler.setURL()就可以修改

应为protected的方法只有子类或者同一个package的类的实例可以调用,而URL是final的,同时java.net这个package是不允许程序员使用的,所以就只剩下和URL在同一个package里的URLStreamHandler调用了URL.set()这个方法。

论坛徽章:
0
3 [报告]
发表于 2007-10-14 07:27 |只看该作者

继续虚心求教……

谢谢sakulagi的指教!

经过思考,我又有了两个问题:
1、“java.net这个package是不允许程序员使用的”这是什么意思啊?import一下不就可以使用了吗?
2、“就只剩下和URL在同一个package里的URLStreamHandler调用了URL.set()这个方法。”这我也很费解:URLStreamHandler是abstract,API中看不出URLStreamHandler有哪些非abstract的子类。
3、URLStreamHandler中的setURL方法也是protected。这该怎么用它呢?

可以介绍一下各位是怎样使用URL的set方法的吗?如果能有一个代码作例子就好极了!

[ 本帖最后由 strato 于 2007-10-14 07:30 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2007-10-15 16:00 |只看该作者
【1】 sorry,是笔误,java.net是不允许程序员修改的,使用是可以的。呵呵
【2】URLStreamHandler需要继承之后使用
【3】 继承了之后就可以使用了。

建议看一下public, protected和private的权限介绍,应该可以更清楚一些
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP