Java包名称中单词分隔符的约定是什么?
如何在软件包名称中使用单独的单词?以下哪项是正确的
com.stackoverflow.my_package
(Snake Case
使用下划线)com.stackoverflow.my-package
(Kebab Case
使用连字符)com.stackoverflow.myPackage
(Camel Case
)com.stackoverflow.MyPackage
(Pascal Case
)
一般标准是什么
你可以在下面搜索框中键入要查询的问题!
如何在软件包名称中使用单独的单词?以下哪项是正确的
com.stackoverflow.my_package
(Snake Case
使用下划线)com.stackoverflow.my-package
(Kebab Case
使用连字符)com.stackoverflow.myPackage
(Camel Case
)com.stackoverflow.MyPackage
(Pascal Case
)一般标准是什么
# 1 楼答案
任何人都可以使用下划线(可以)
任何人都不应该使用hypen-(这是一种糟糕的做法)
任何人都不应该在包裹名称中使用大写字母(糟糕的做法)
注意:这里的“坏习惯”是指从技术上来说,你可以使用它,但按照惯例,它不是一种好的写作方式
资料来源:Naming a Package(docs.oracle)
# 2 楼答案
官方的命名约定没有那么严格,它们甚至不“禁止”除前缀以外的大小写符号(
com
)但我个人会避免大写字母和连字号,甚至是数字。我也会像布拉格博建议的那样选择
com.stackoverflow.mypackage
(连字符“-”在程序包名称中不合法)
编辑
有趣的是,语言规范中也提到了命名约定
在Chapter 7.7 Unique Package Names中,我们看到了一些示例,其中包名由大写字母组成(因此CamelCase表示法可以),他们建议用下划线(“mary lou”->;“mary_lou”)替换连字符,并用下划线(“com.example.enum”->;“com.example._enum”)作为java关键字的前缀
在第6.8.1 Package Names章中可以找到更多关于包名中大写字母的示例
# 3 楼答案
在包名中串联单词是大多数开发人员不会做的事情
你可以用类似的东西
com.stackoverflow.mypackage
参考JLS Name Declaration
# 4 楼答案
下划线在包名中看起来很难看。值得一提的是,如果名称由三个或更多单词组成,我会使用首字母缩写(例如:
com.company.app.ingresoegresofijo (ingreso/egreso fijo) -> com.company.app.iefijo
),然后在package-info.java
中记录文件包的用途# 5 楼答案
这三个都不是惯例
使用
com.stackoverflow.mypackage
包名不遵循驼峰大小写或下划线或连字符package naming convention
此外,Google Java Style Guide指定了完全相同的(即
com.stackoverflow.mypackage
)约定:# 6 楼答案
以下是官方命名惯例文件的规定:
参考文献
请特别注意,上面的文档没有指定顶级域前缀之后的任何内容。JLS也同意这一点,给出了以下示例:
以下摘录也与此相关:
参考文献