我的域名是3DTOPO.com。显然,java不允许包域名以数字开头。
为什么Java反向域名遵循与域名相同的规则呢?我真的不想把我的包命名为com.threedtopo ....
对于不是我的域名的初学者!其他任何人都可以自由注册并使用该域名。此外,它非常尴尬,而不是我的业务名称。
有没有人有包名称建议?
答案 0 :(得分:11)
我认为您的意思是Java不允许包名以数字开头。
一个常见的替代方案是在下面添加一个下划线,_3dtopo。
答案 1 :(得分:9)
Sun / Oracle在Java教程的Naming a Package部分专门解决了这个问题:
在某些情况下,互联网域名可能不是有效的包名。如果域名包含连字符或其他特殊字符,如果包名称以数字或其他非法用作Java名称开头的字符开头,或者包名称包含保留的Java关键字,则会发生这种情况,例如“int”。在这种情况下,建议的约定是添加下划线。
他们继续举几个例子,在这种情况下相关的一个例子是域123name.example.com
成为包com.example._123name
。
答案 2 :(得分:5)
根据RFC 1912,
主机名标签中的允许字符仅为ASCII 字母,数字和“ - ”字符。标签可能不是全部 数字,但可能有一个前导数字(例如,3com.com)。标签必须 结束并仅以字母或数字开头。参见[RFC 1035]和[RFC 1123。 (标签最初在[RFC 1035]中受限于开始 一封信,还有一些老主人据说还有问题 放松[RFC 1123]。)注意有一些互联网 违反此规则的主机名(411.org,1776.com)。存在 [RFC 1033]允许标签中的下划线,[RFC 1033]除外 仅供参考,并未定义标准。有。在 目前拒绝的至少一种流行的TCP / IP实现 与以下划线命名的主机交谈。必须指出的是 [1035]中的语言是这些规则是自愿的 - 它们 那些希望尽量减少问题的人。请注意 Internet主机名的规则也适用于使用的主机和地址 在SMTP中(参见RFC 821)。
因此,在1989年RFC 1123之前,域名前面的允许数字才开始。
值得注意的是,他们在1990年开始编写Java。那时以数字开头的域可能并不常见,所以包名似乎与主机名类似。
包名称不必直接对应于域名。对我来说,域名是暂时的 - 它们可以买卖。软件包名称的持续时间可能比域名长。
对于它的价值,3com通过购买另一个域来解决它。 ;-)他们使用com.palm.webos
作为某些软件。
答案 3 :(得分:5)
为什么Java反向域名遵循与域名相同的规则呢?
由于: