外部文件中的嵌套/内部类

2024-02-06

我有课MyClass和一个内部类MyNestedClass像这样:

public class MyClass {
  ...
  public class MyNestedClass {
    ...
  }
}

两堂课的时间都很长。因此,我想将它们分成两个不同的文件,而不破坏层次结构。这是因为嵌套类对于使用 MyClass 的程序员来说不应该是可见的。

有办法实现吗?


您可以将内部类包设为私有,这意味着它只能从完全相同的包中的其他类访问。对于标准 JDK 包中的隐藏类也经常这样做,例如java.lang or java.util.

在 pkg/MyClass.java 中

public class MyClass {
  ...
}

在 pkg/MyHiddenClass.java 中

class MyHiddenClass {

  final MyClass outer;

  MyHiddenClass( MyClass outer )
  {
      this.outer = outer;
  }
  ...
}

现在,当您想访问外部类的方法或变量时,您需要在它们前面加上前缀outer.但是当编译器综合创建对外部实例的引用时,您获得的功能与以前基本相同。

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

外部文件中的嵌套/内部类 的相关文章

  • 使用 Java-Large 文件查询 JSON 文件

    我正在尝试使用 java 解析下面的 JSON 文件 我需要能够 按 ID 或名称或对象中的任何字段搜索文件 也在字段中搜索空值 搜索应返回整个对象 该文件将会很大 并且搜索应该仍然很省时 id 1 name Mark Robb last
  • 如何更改 JComboBox 下拉列表的宽度?

    我有一个可编辑的JComboBox其中包含单个字母值的列表 因此 组合框非常小 每个字母都有特殊的含义 对于很少使用的字母 有时用户并不清楚 因此我创建了一个自定义ListCellRenderer显示下拉列表中每个字母的含义 不幸的是 这个
  • Criteria eager fetch-joined 集合以避免 n+1 选择

    假设 Item 和 Bid 是实体 一个 Item 有多个 Bid 它们被映射到休眠在典型的父子关系中
  • 如何向 OkHttp 请求拦截器添加标头?

    我将这个拦截器添加到我的 OkHttp 客户端 public class RequestTokenInterceptor implements Interceptor Override public Response intercept C
  • Spring boot 404错误自定义错误响应ReST

    我正在使用 Spring boot 来托管 REST API 即使浏览器正在访问 URL 以及自定义数据结构 我也希望始终发送 JSON 响应 而不是使用标准错误响应 我可以使用 ControllerAdvice 和 ExceptionHa
  • SimpleDateFormat 无法正确处理 DD

    我正在尝试获得这样的格式 2013 06 15 17 45 我在代码中执行以下操作 Date d new Date SimpleDateFormat ft new SimpleDateFormat YYYY MM DD HH mm Stri
  • BigDecimal 中 Divide 方法的 Scale()

    new BigDecimal 37146555 53880000 divide new BigDecimal 1000000 scale 这返回10 但根据API divide method 返回一个 BigDecimal 其值为 这个 除
  • AES BadPaddingException

    如果我使用错误的密钥或错误的盐进行解密 则会引发 BadPaddingException 我希望返回一个不正确的字符串 doFinal 导致解密方法出现异常 信息 This is just an example Unfug S F V s
  • Hibernate、MySQL 视图和 hibernate.hbm2ddl.auto = 验证

    我可以在 Hibernate 中使用 MySQL 视图 将它们视为表 即 该实体与为表创建的实体没有什么不同 但是 当 Hibernate 设置为验证模型时 我的应用程序将不会部署 因为它找不到视图 因为它假设它是一个表 是否可以在启用部署
  • 当用户使用相同的凭据登录两次时如何使用户会话无效

    我正在使用带有 Richfaces 和 Facelets 的 JSF 1 2 我有一个应用程序 其中包含许多会话范围的 Bean 和一些应用程序 Bean 假设用户使用 Firefox 登录 创建一个会话 ID A 然后他打开 Chrome
  • Android Studio 找不到 com.android.support:support-v4:19.1.0

    我已将一个项目导入Android Studio但我收到错误 找不到 com android support support v4 19 1 0 我在哪里可以找到这个文件 我已经使用导入了项目Gradle 我有Android Studio v
  • JavaFX 动画使用循环?

    我正在尝试制作一款类似太空侵略者的游戏 我画了一个正方形 我想通过使用循环逐步向下移动它thread sleep 然而 正方形立即被绘制出来 我知道有可以使用的动画路径 但我想保持低水平并仅使用坐标系 有没有办法使用这样的循环来制作时间轴动
  • 如何在开头时解析 json 文件

    我想解析以下 JSON 文件 但以 向我表明这是一个数组 然后继续 对象 我当前的解析器返回一个 JSON 对象 我的问题是 如何修改解析器来解析这个文件 这样解析器将为我提供其他 JSON 文件 从对象或排列开始 JSON 文件 codi
  • 未从线程接收位置数据

    我尝试使用计时器经常发送包含用户位置的短信 最初 我遇到了空指针异常 这是由于我犯了一个简单的错误 一旦解决了这个问题 一切似乎都运行良好 但是 它永远不会获取我的位置 因此 不断发送的文本显示 无法接收位置 我想问的是为什么它无法获取我的
  • 飞碟 - html 实体未呈现

    我正在使用 Flying saucer lib 生成 pdf 但我对一些 html 实体有问题 我已经在寻找解决方案 我在这个论坛和其他地方找到了很多提示 但仍然存在问题 我尝试过这种方法 http sdtidbits blogspot c
  • System.out.println("嗨"+6+10);打印Hi610?

    为什么要这样做 太令人困惑了 运算符优先级和结合性 两点 操作员 如果一个或两个参数都是字符串 则进行字符串连接 操作员 从左到右工作 所以在你的例子中 Hi 6 is Hi6 and Hi6 10 is Hi610 编辑 正如您在对另一个
  • 使用 OpenNLP 获取句子的解析树。陷入困境。

    OpenNLP 是一个关于自然语言处理的 Apache 项目 NLP 程序的目标之一是解析一个句子 并给出其语法结构的树 例如 天空是蓝色的 这句话 可能会被解析为 S NP VP The sky is blue where S是句子 NP
  • MATLAB - 从目录读取文件?

    我希望从目录中读取文件并对每个文件迭代执行操作 此操作不需要更改文件 我知道我应该为此使用 for 循环 到目前为止我已经尝试过 FILES ls path to folder for i 1 size FILES 1 STRU pdbre
  • Java:如何检测(并更改?)System.console 的编码?

    我有一个在控制台上运行的程序 其变音符号和其他特殊字符在 Mac 上以 的形式输出 这是一个简单的测试程序 public static void main String args System out println h h System
  • 如何获取 res.drawable 文件夹的路径来复制文件?

    我正在编写我的应用程序AndroidStudio 我的里面有gif文件drawable gifs文件夹 我希望将该文件复制到MediaStore Images Media单击按钮后的文件夹 目前 即使使用发布的一些答案 我也无法获取我的 g

随机推荐

  • MacOSX 10.9.5 上的 Sed 错误“\1 未在 RE 中定义”

    我正在尝试使用 bash 为我的 MP3 文件名 非常重要 构建一个通用格式化程序 其中很大一部分是能够使用正则表达式变量移动文本 例如 我试图删除 ft Kevin Parker 周围的括号 oldfilename Mark Ronson
  • Sidekiq:是否可以“暂停”队列?

    是否可以 暂停 sidekiq 队列 我正在运行下载作业 但我必须让我的 Mac 运行 休眠 所以我想告诉 sidekiq 暂停一下 有没有一种简单的方法可以做到这一点 您无法中途停止作业 如果您想停止处理队列中的新作业 这是 Sideki
  • Android中的可分包和继承

    我得到了一个适用于不涉及继承的单个类的 Parcelable 实现 在继承方面 我无法找出实现接口的最佳方法 假设我得到了这个 public abstract class A private int a protected A int a
  • 如何使用java获取BIOS信息?

    请告诉我是否可以使用 java 程序获取 BIOS 设置信息 我使用 Windows 7 作为操作系统 这取决于您要阅读的信息 Java 无法读取 BIOS 但 java 可以查询 WMI google for jWMI 这可能会获取您需要
  • 在 Excel 中拆分和分组值

    Hi I have a column of values which has different suffix after a dot i need it to group it based on the value after dot E
  • 类型错误:无法重新定义属性:tap

    每当我尝试运行时我都会收到此错误npm run dev webpack cli TypeError Cannot redefine property tap at Function defineProperty
  • 数组声明中的 PHP 扩展语法

    PHP 支持扩展语法可变参数函数 http php net manual en functions arguments php functions variable arg list 在 JavaScript 中 您可以使用扩展语法来执行以
  • 丑数 - dp 的数学直觉

    我正在尝试找到 丑陋 的数字 这是一系列唯一质因数为 2 3 5 的数字 我找到了动态规划解决方案 并想了解它是如何工作的以及逻辑背后的数学直觉是什么 该算法是为 2 3 和 5 的倍数保留三个不同的计数器变量 让我们假设 i2 i3 和
  • 将峰度应用于 python 中的分布

    我有一个数据集 其格式为 频率 方向 归一化功率谱密度 扩展 偏度 峰度 我可以使用顶部答案中的代码可视化特定记录的分布scipy 中的偏斜正态分布 https stackoverflow com a 5885349 1135883但我不确
  • YAML:具有空值的字典

    如何在 YAML 中编写一个字典 映射 其中一个键将空字符串作为其值 key 被解析为 null YAML 1 1 map str key null null 正确答案是 key
  • 警告:尝试多次加载角度...因为 jQuery...为什么?

    我试图了解这里发生了什么事 该警告是不言自明的 我意识到在应用程序中 使用下面的代码和结构 它运行 ng view 两次 测试 将在控制台中记录两次 所以角度当然会加载两次 但为什么 我已经阅读了我能找到的所有关于它的文章 它似乎归结为 j
  • GetExternalLoginInfoAsync null 与ExternalLoginCallback 中的OWIN 除非已经登录到google

    我一直在尝试使用 Google 帐户在 MVC5 应用程序中使用 OWIN 实现外部登录 如果我已经登录谷歌 点击我的应用程序中的谷歌按钮就可以了 在允许我访问登录信息后 它会将我带到我的注册页面 如果我在单击我的应用程序 google 按
  • Keras cifar10 示例验证和测试损失低于训练损失

    我正在使用 Keras 的 cifar10 示例 你可以找到它here https github com fchollet keras blob master examples cifar10 cnn py 我已经重新创建了模型 即 不是相
  • Android Studio 错误“支持的最低 Gradle 版本是 7.0.2。当前版本是 6.8。”

    我下载 6 8 版本和最新版本的 Gradle 后出现错误 评估项目 launcher 时出现问题 我需要做什么 I m attaching more details in the added pictures 错误 支持的最低 Gradl
  • ESLint规则开发过程中如何调试

    我有 C 背景 因此在 Visual Studio 中按 F5 并获得了美妙的调试体验 这让我很开心 我想进入 OSS 并且当我使用 ESLint 时 我经常想尝试回馈 我已经关注了http eslint org docs develope
  • 新的 Pandoc distrib = 松散交叉引用(RMarkdown - knitr - Bookdown - thesisdown - R)

    使用 knit 和 bookdown yaml 将一堆 Rmd 文件导出到单个 doc 文件时 我丢失了一些交叉引用 方法是thesisdown thesis word 我安装新版本的 Pandoc 后立即出现了丢失引用的问题 也许我在 P
  • Oracle从plsql调用java时如何导入缺失的java类

    我正在尝试逐步编写一个 java 函数 该函数可以采用 Oracle XML BI Publisher Report 不是商业智能中使用的 BI Publisher 而是 Oracle 应用程序使用的 XML Publisher 功能 并以
  • Python 获取选定的文本

    我如何使用 Python 捕获 用户在 Web 浏览器中选择的文本 该脚本将在后台闲置 当按下某个组合键时 它会 获取 用户选择的文本 想想复制和粘贴 只是它复制到我的应用程序而不是剪贴板 谢谢 我想指出的是 这适用于 Mac Instal
  • 当应用程序外部数据库上的数据发生更改时,如何刷新 React Redux 应用程序

    场景 数据库中某些表的数据更改 例如使用从另一个进程上传的文件 例如不属于react redux应用程序的ETL工具 那么我们如何刷新react redux应用程序组件呢 Web 套接字是唯一将这种更改从服务器推送到客户端的方法吗 或者我们
  • 外部文件中的嵌套/内部类

    我有课MyClass和一个内部类MyNestedClass像这样 public class MyClass public class MyNestedClass 两堂课的时间都很长 因此 我想将它们分成两个不同的文件 而不破坏层次结构 这是