gpt4 book ai didi

更改包名称大小写约定的 Java 原因

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:15 25 4
gpt4 key购买 nike

就在你说这是重复之前,我已经看到了其他问题,但我仍然想发布这个。

所以我正在阅读 Thinking in Java -Bruce Eckel 这篇文章是关于小写命名约定的:

In Java 1.0 and Java 1.1 the domain extensions com, edu, org, net, etc., were capitalized by convention, so the library would appear: NET.mindview.utility.foibles. Partway through the development of Java 2, however, it was discovered that this caused problems, so now the entire package name is lowercase.

我遇到的问题是“发现这导致了问题”。什么问题?这不可能是名称冲突,因为域名全部大写,对吧?


我在 Google 上搜索过这个,但我得到的是:Why should java package name be lowercase? :

Package names are written in all lower case to avoid conflict with the names of classes or interfaces.

我还搜索了 java package lowercase convention changed all-caps domain name 但无济于事。


那么有人知道他们为什么中途更改命名约定吗?

最佳答案

只是一个大胆的猜测,并非基于任何可靠的来源:包名称与文件系统目录结构相关。一个包含 NET 的包名可能会导致问题,例如来自区分大小写的文件系统的源代码树被复制到/用于不区分大小写的文件系统,并且出于某种原因目录名称从“NET”更改为等效的“net”。

相反的方向也有同样的处理:从包名称解析文件系统路径,我可以想象这可能会导致一些歧义或至少让用户感到惊讶的情况。

我可以看到这在某些情况下会造成混淆。

另一个潜在的问题是它与类命名约定中允许的冲突。类通常是首字母大写,但这并不罕见,例如首字母缩略词全部大写,例如一个名为 APICOM 之类的类。这允许包和类命名约定之间存在一些重叠。但我的感觉是文件系统问题更有可能出现。

关于更改包名称大小写约定的 Java 原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39231853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com