news 2026/3/1 13:45:40

《Effective Java》第25条:限制源文件为单个顶级类

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《Effective Java》第25条:限制源文件为单个顶级类

说明:

关于本博客使用的书籍,源代码Gitee仓库 和 其他的相关问题,请查看本专栏置顶文章:《Effective Java》第0条:写在前面,用一年时间来深度解读《Effective Java》这本书

正文:

Java允许我们在一个Java文件中,定义多个顶级类,并且可以正常编译和使用,但是这种方式是没有任何好处的,只会带来巨大的风险。

如书上举的例子:

正常情况下,在Utensil.java 源文件中定义 Utensil类 、在 Dessert.java 源文件中定义 Dessert类。是完全没有问题的。这也是我们经常做的。

当在 Utensil.java 源文件中定义 Utensil类 和 Dessert类,程序不会报错,执行也没问题

但是当再从 Dessert.java 源文件中定义 Utensil类 和 Dessert类,在idea中,程序就会编译出错,编译器会提醒你定义了多个Utensil 和Dessert类。

书中提到的使用命令符的 javac 命令,这里不再演示,也没有必要。

如果我们有在一个源文件中定义多个类的需求,那么最好的方式就是考虑使用静态成员类(详见第24条)。

总结:

原文P92:永远不要把多个顶级类或者接口放在一个源文件中。遵循这个规则可以确保编译时一个类不会有多个定义。这么做反过来也能确保编译产生的类文件,以及程序结果的行为,但会受到源文件被传给编译器时的顺序的影响。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/24 2:05:27

飞腾D3000服务器级平台Cache一致性优化:从原理到实战

引言 在信创产业蓬勃发展的当下,飞腾 D3000 服务器级平台凭借其卓越的性能、超高的安全性以及广泛的生态适应性,已然成为信创领域的中流砥柱。飞腾 D3000 采用先进的指令集架构,集成自主研发的内核,主频高达 2.5GHz,在 GeekBench 6 测试中,多核得分强势达到 5850 分,相较…

作者头像 李华
网站建设 2026/2/24 18:36:56

基于单片机的智能电子秤设计

一、设计背景与核心需求 传统电子秤功能单一,多仅能实现重量测量,难以满足现代生活中对食材营养分析、物品分类统计、数据追溯等多样化需求。基于单片机的智能电子秤,融合高精度称重、数据处理与智能交互功能,可广泛应用于家庭厨房…

作者头像 李华
网站建设 2026/3/1 6:38:35

Comsol实现激光熔覆的凝固相场树枝晶生长探索

comsol实现激光熔覆的凝固相场树枝晶生长 考虑溶质、 相场 温度场耦合 提供资料 全套的模型文件和参考文献以及讲解视频 利用凝固组织的建模和验证可以减少获得所需组织的迭代成本。 结合Marangoni对流的基于流体体积的数值方法可以准确地预测熔池的几何形状和温度分布&#xf…

作者头像 李华
网站建设 2026/2/25 14:07:43

探索元启发式算法:从建模到改进与实现

元启发式算法建模设计,智能优化算法编程实现,改进算法设计,基于matlab建模在当今的技术领域,元启发式算法与智能优化算法备受瞩目,它们如同神奇的钥匙,打开解决复杂问题的大门。今天咱就深入探讨一下元启发…

作者头像 李华