Java 中的模块化:顶级类与嵌套类

2024-01-15

我读过的Java教程,喜欢使用嵌套类来演示一个概念、一个特性或用途。

这导致我最初实现了一个我创建的示例项目:主活动类中有很多嵌套类。

它可以工作,但现在我得到了一个巨大的整体 .java 文件。我发现这有点不方便,我现在打算分解为多个 .java 文件/类。

但我突然想到,有时可能是有原因的not to从他们封闭的班级中选课。

如果是这样,考虑到模块化性和易于维护性,保持模块较大的充分理由是什么?

是否存在将嵌套类转换为顶级类不切实际(甚至不可能)的情况?换句话说,是否存在只有嵌套类才能满足某些功能的情况?


如果所有类位于同一个文件中,则可以更轻松地读取它们。这就是为什么这种方法适合示例代码。

然而,对于真正的代码,您应该将文件/类分解为可管理的大小。 Java 6 中最长的类文件大约有 9000 行。我倾向于让课程时间比这短。 ;)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中的模块化:顶级类与嵌套类 的相关文章

  • 如何在 NetBeans 中以调试模式单步执行已实现的方法?

    我有课XImpl java它实现了一个接口X java 以及所有它的方法 我调试项目 在执行流程中遇到一个方法X processSomeValue 现在 当我尝试进入该方法时processSomeValue 我无能为力 有什么办法可以让我进
  • 从插件设置 Maven 属性

    我在这里阅读了一些关于如何从 Maven 插件设置属性的问题 其中大多数讨论了应用程序的版本号 似乎没有简单的方法可以做到这一点 我发现的最佳解决方案是拥有一个从插件更新的 filter properties 文件 并由主 pom 文件使用
  • Maven:无法在 OS X 上找到 java.lang 问题

    当我尝试时遇到以下问题mvn clean install显然它无法找到运行时 jar 但我需要做什么 错误日志 ERROR COMPILATION ERROR INFO ERROR Failure executing javac but c
  • 匿名类*总是*维护对其封闭实例的引用吗?

    我正在处理一些代码 其中一个对象 foo 正在创建另一个对象 对象 bar 并将其传递给Callable 之后 foo 将返回 bar 然后我希望 foo 变得无法访问 即 可用于 垃圾收集 我最初的想法是创建Callable匿名 例如 c
  • java.io.IOException: EnsureRemaining: 仅剩余 0 个字节,尝试读取 1

    我在 giraph 中的自定义类方面遇到一些问题 我制作了 VertexInput 和 Output 格式 但总是收到以下错误 java io IOException ensureRemaining Only bytes remaining
  • 如何在异常处理程序中访问访问请求主体

    我们有一个 Spring Boot 应用程序 我们的控制器期望在我们的端点之一中有一个 XML 文档元素 PostMapping value api v1 do stuff consumes APPLICATION XML VALUE pr
  • 如何在我的 HttpClient 执行器中遵循单一职责原则?

    我在用RestTemplate http docs spring io spring docs current javadoc api org springframework web client RestTemplate html as
  • 通过 Session.update 和 HibernateTemplate.merge 进行 Hibernate 更新的区别

    我看到了更新操作的类型 第一的 getHibernateTemplate execute new HibernateCallback public Object doInHibernate Session session session f
  • 使用 Oracle Wallet 身份验证从 Spring-jdbc 连接到 Oracle DB

    我将 Spring jdbc 与 org apache commons dbcp BasicDataSource 结合使用 使用用户名和密码进行连接 我想使用BasicDataSource 因为我只有一个连接 我有这个代码
  • 在类路径中使用通配符调用 java 失败

    我当前目录中有一些 jar 它们都需要位于类路径中 因此我想对类路径使用通配符约定 命令行是 java exe classpath org python util jython args 但是我收到这个错误 Exception in thr
  • 使用枚举变量切换字符串

    我有一个具有不同值的枚举 并且想要切换字符串变量 现在 我在尝试将枚举值转换为字符串 可以用作大小写常量 时遇到了困难 我最好的尝试是将枚举转换为字符串数组 但开关似乎不接受数组值作为大小写常量 IntelliJ 说 需要恒定的表达 Enu
  • Jackson 中没有注释的多态反序列化

    我有一个CloudEvent
  • 如何告诉 Eclipse 忽略 Ant build.xml 中的错误?

    我有一个使用 Maven 构建的 Eclipse 项目 并且我在 Eclipse 中使用 m2eclipse 插件来获得 Maven 支持 然而这个项目还包含一个build xml它并不用于实际构建项目 而只是用于编写脚本功能 作为项目开发
  • 码头无故停止

    我需要经验丰富的码头用户的建议 我在负载均衡器 亚马逊云 后面维护着 2 台 Linux 机器 使用 Jetty 9 0 3 有时我的 Jetty 容器会被 Thread 2 无故关闭 同时地 显示以下日志并且容器无故停止 没有错误 没有例
  • 在JAVA中将数据写入.txt文件?

    我想知道是否是在JAVA中将计算的数据写入文本文件 我的 JAVA 代码是一个基于 GUI 的 gpa 计算器 我只想添加一个 JButton 和 ActionListener 它将类名 GPA 点和计算出的 GPA 写入 txt 文件 这
  • 未找到 GroovyEvaluator

    我会尝试在以下位置制作我的 PIE 3D 报告iReport 在我的 struts xml 中 我用这个来调用我的报告
  • 如何组织课程、课程包[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 您如何决定包名称应该是什么以及什么类应该放入哪个包中 我正在开发一个项目 在该项目中 我不断添加 删除类 并且不确定我是否需要一个新包 或者应该将其添
  • 正确的单元测试技术

    在使用 TDD 时 我发现自己需要测试一个包含查找值的常量 最终 哈希图 请查看更新中出现这种情况的原因 见下文 private static final Map
  • 无法验证 serde:org.openx.data.jsonserde.jsonserde

    我编写了这个查询来在配置单元上创建一个表 我的数据最初是 json 格式 所以我已经下载并构建了 serde 并添加了它运行所需的所有 jar 但我收到以下错误 FAILED Execution Error return code 1 fr
  • 如何在Java中添加两个“卡”的值?

    我正在开发一个项目来模拟二十一点游戏中的第一笔交易 到目前为止 程序创建了两张随机等级 ACE 到 KING 和随机花色的牌 我正在努力创建一个切换表或 if else 梯形图 将两张卡的附加值分配为可变分数 下面的代码从概念上代表了我想要

随机推荐

  • data.table 不计算 NA 组

    这个问题有部分答案here https stackoverflow com questions 47444012 skip na in data table by但问题太具体了 我无法将其应用于我自己的问题 我想在使用时跳过 NA 组的潜在
  • PMD 与 Maven - 如何禁用规则集中的一条规则?

    我通过 Maven 2 运行 PMD 现在我已经准备好所有规则集来查看生成的内容 请参见下面的代码 我正在经历并修复对我来说有意义的事情 但是 在某些情况下 例如在 优化 规则集中 我想保留规则集 但是仅禁用规则集中的规则之一 就我而言 我
  • Redis 安装问题“cc:找不到命令”

    安装redis非常简单 我已经在几个虚拟机上完成了 但在一个例子中 我面临以下问题 root server redis 2 4 2 make cd src make all make 1 Entering directory home us
  • WPF 应用程序中后台工作人员中的图像

    我有以下代码片段 用于创建列表以作为 WPF 应用程序中的绑定添加到滚动查看器 private void LoadThumbs object sender DoWorkEventArgs e ClearScreen int max int
  • Google Maps Android API V2 检查设备上是否安装了 GoogleMaps

    使用 Google Maps Android API V2 时 我遵循Google Play 服务设置文档 https developer android com google play services setup html要进行检查以确
  • 如何在Android中创建半透明的指令页面?

    我是 Android 新手 过去 2 天一直在尝试解决这个问题 但可以找到解决方案 任何帮助将不胜感激 如何创建一个半透明的页面作为Android Market中卡路里计数器应用程序使用的说明页面 创建一个新的 Activity 并将顶级视
  • 使用适用于 iOS 的谷歌地图 SDK 进行标记聚类?

    我在 iOS 应用程序中使用 Google Maps SDK 并且需要对彼此非常接近的标记进行分组 基本上需要使用标记聚类 如所附网址中所示 我可以在 Android 地图 SDK 中获得此功能 但我没有找到任何适用于 iOS Google
  • Travis ci 是否允许大于 7.8 的 ghc 版本?

    我刚刚用这个创建了一个 Haskell Travis CI 项目 travis yml language haskell ghc 7 8 7 10 但特拉维斯将第二个版本解释为7 1 https travis ci org fhaust d
  • 在 NodeJS 中为 PowerBI 创建自定义视觉对象 - “找不到名称“IVisualHost”

    我正在尝试按照本教程为 Power BI 创建自定义视觉对象 https learn microsoft com en us power bi developer custom visual develop tutorial https l
  • 有没有一种简单的方法可以在没有 JavaScript 的情况下在 PHP 中“获取”图像的大小?

    假设我有一个图像的 URL 有没有一种简单的方法可以使用 PHP 获取它的高度 宽度 如果可能的话我不想使用javascript 你可以使用获取图像大小 http www php net manual en function getimag
  • UPnP AV 和 DLNA 有什么区别?

    如果我符合 DLNA 1 5 标准 我就已经实现了 UPnP AV 我这样想对吗 除了指定最低格式要求之外 DLNA 还能给我带来什么 DLNA 不是建立在 UPnP 之上吗 我确信DLNA设备发现完全基于SSDP UPnP的设备发现协议
  • Django:在管理多重选择中显示嵌套类别

    我想找到一种获取类别和子类别的方法 以多选的形式显示在管理中 Like parent child1 child2 parent2 child3 我必须创建自定义字段还是已经有解决方案 大约 Edit 模型是 class Category m
  • 将目录文件夹名称存储到阵列 Powershell 中

    我正在尝试编写一个脚本 该脚本将获取特定目录中所有文件夹的名称 然后将每个文件夹作为数组中的条目返回 从这里开始 我将使用每个数组元素来运行一个更大的循环 该循环使用每个元素作为稍后函数调用的参数 所有这一切都是通过 powershell
  • 广度优先搜索树如何包含交叉边?

    好吧 我知道无向图的广度优先搜索树不能有后边 但我想知道它怎么可能有交叉边缘 我无法想象由 OFS 构建的图 G 的生成树 其中包含交叉边 在无向图上使用 BFS 构建生成树的过程将生成以下类型的边 树边 交叉边 连接不同分支上的顶点 一个
  • 错误:任务“:app:clean”执行失败。无法删除文件

    我正在尝试重建我的 Android Studio Gradle 项目 主要包含 Kotlin 代码 但它开始引发UnableToDeleteFileException在清洁 重建过程中 Execution failed for task a
  • 启动层java.lang.module初始化时出错。 FindException:找不到模块 javafx.controls [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在尝试在 Intellij 2018 3 IDE 中构建示例 javaFX 应用程序 我已经安装了oracle JDK11 并
  • 了解与 .NET 的 HttpWebRequest 的 SSL 连接

    我似乎无法理解这个问题 我正在使用 HttpWebRequest 尝试将一些数据发送到另一个站点 我试图找出配置防火墙的最佳方法 但我不知所措 通过观察 NetMon 跟踪 它似乎忽略了我告诉它的内容 我看到从请求中发出的 HTTP 标头
  • leveldb-go 示例,文档

    LevelDB Go http code google com p leveldb go 是LevelDB在Go语言中的移植 LevelDB Go 通常被称为 Go 应用程序的本机替代方案 网站没有示例 也没有文档 我应该通过阅读源代码来学
  • 从基础到派生的“dynamic_cast”

    是的 我知道沮丧使用dynamic cast无法编译 如果Base不是多态的 但我的问题不是这个 class Base public virtual void bar cout lt lt bar n class Derived publi
  • Java 中的模块化:顶级类与嵌套类

    我读过的Java教程 喜欢使用嵌套类来演示一个概念 一个特性或用途 这导致我最初实现了一个我创建的示例项目 主活动类中有很多嵌套类 它可以工作 但现在我得到了一个巨大的整体 java 文件 我发现这有点不方便 我现在打算分解为多个 java