为什么我可以访问封闭类引用的私有成员

2023-12-14

我看到很多有关访问封闭类的私有成员的问题。然而,我的问题恰恰相反。

如果我有(作为示例),则以下代码:

public class A {

   private String outerString = "silly string";

   static class B {
      private final A someA = new A();      

      public void foo() {
         String b = someA.outerString ;
      }
   }
}

我想知道为什么会编译?由于我从 A 类访问“outerString”实例变量(通过 someA.outerString)的方式,我预计会出现错误。我知道内部类可以通过隐式“this”引用直接访问封闭类成员。但在这里,B 类是静态的,因此“this”引用不适用。


B是的成员A因此可以访问A's private领域和方法。
在这种情况下,虽然B is static它使用 A 的实例来访问该字段A.outerString.

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

为什么我可以访问封闭类引用的私有成员 的相关文章

  • Java Try Catch Final 没有 Catch 的情况下会阻塞

    我正在审查一些新代码 该程序只有一个 try 和一个 finally 块 既然排除了 catch 块 那么如果 try 块遇到异常或任何可抛出的内容 它如何工作 它直接进入finally块吗 如果 try 块中的任何代码可以引发已检查异常
  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • 禁用 Eclipse Java 调试器的热代码替换 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Eclipse 中禁用热代码替换 https stackoverflow com questions 2594408 how do i disable hot code replace in
  • 如果在睡眠线程上调用interrupt()会发生什么?

    我有一个线程 然后run I call sleep 如果我中断这个线程会发生什么 MyThread extends Thread public void run try sleep 1000000 catch InterruptedExce
  • 无法在 Spring Boot 测试中模拟 persistenceContext

    我正在使用带有 Mockito 框架的 spring boot 测试来测试我的应用程序 存储库类 EntityManager 之一作为参考 我的班级如下所示 Repository Transactional Slf4j public cla
  • Firestore - RecycleView - 图像持有者

    我不知道如何编写图像的支架 我已经设置了 2 个文本 但我不知道图像的支架应该是什么样子 你能帮我告诉我图像的文字应该是什么样子才能正确显示吗 holder artistImage setImageResource model getArt
  • 如何在android中设置多个闹钟,在这种情况下最后一个闹钟会覆盖以前的闹钟

    我正在开发一个Android应用程序 用户可以在其中设置提醒时间 但我在以下代码中遇到一个问题 即最后一个警报会覆盖之前的所有警报 MainActivity java public void setreminders DatabaseHan
  • Java 数组的最大维数

    出于好奇 在 Java 中数组可以有多少维 爪哇language不限制维数 但是JavaVM规范将维度数限制为 255 例如 以下代码将无法编译 class Main public static void main String args
  • 如何将 Jfreechart(饼图)添加到 netbeans 的面板中

    我正在使用 netbeans gui 编辑器 并且正在尝试添加一个本身位于内部框架中的 Jfreechart 并且这个内部框架我想将其添加到面板中 正如您在此图中看到的那样 抱歉 我无法直接发布图像 因为我新手 http www flick
  • 获取给定类文件的目录路径

    我遇到的代码尝试从类本身的 class 文件所在的同一目录中读取一些配置文件 File configFiles new File this getClass getResource getPath listFiles new Filenam
  • Java - 返回值是否会中断循环?

    我正在编写一些基本上遵循以下格式的代码 public static boolean isIncluded E element Node
  • Spring Security OAuth2简单配置

    我有一个简单的项目 需要以下简单的配置 我有一个 密码 grant type 这意味着我可以提交用户名 密码 用户在登录表单中输入 并在成功时获得 access token 有了该 access token 我就可以请求 API 并获取用户
  • Dispatcher-servlet 无法映射到 websocket 请求

    我正在开发一个以Spring为主要框架的Java web应用程序 特别使用Spring core Spring mvc Spring security Spring data Spring websocket 像这样在 Spring 上下文
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 解析输入,除了 System.in.read() 之外不使用任何东西

    我很难找到具体的细节System in read 有效 也许有人可以帮助我 似乎扫描仪会更好 但我不允许使用它 我被分配了一个任务 我应该以 Boolean Operator Boolean 的形式读取控制台用户输入 例如T F 或 T T
  • 无法捕获 Spring Batch 的 ItemWriter 中的异常

    我正在编写一个 Spring Batch 流程来将数据集从一个系统迁移到另一个系统 在这种情况下 这就像使用RowMapper实现在传递给查询之前从查询构建对象ItemWriter The ItemWriter称为save我的 DAO 上的
  • 如何在 Quartz 调度程序中每 25 秒运行一次?

    我正在使用 Java 的 Quartz Scheduling API 你能帮我使用 cron 表达式每 25 秒运行一次吗 这只是一个延迟 它不必总是从第 0 秒开始 例如 序列如下 0 00 0 25 0 50 1 15 1 40 2 0
  • 挂钩 Eclipse 构建过程吗?

    我希望在 Eclipse 中按下构建按钮时能够运行一个简单的 Java 程序 目前 当我单击 构建 时 它会运行一些 JRebel 日志记录代码 我有一个程序可以解析 JRebel 日志文件并将统计信息存储在数据库中 是否可以编写一个插件或
  • Java的-XX:+UseMembar参数是什么

    我在各种地方 论坛等 看到这个参数 并且常见的答案是它有助于高并发服务器 尽管如此 我还是找不到 sun 的官方文档来解释它的作用 另外 它是Java 6中添加的还是Java 5中存在的 顺便说一句 许多热点虚拟机参数的好地方是这一页 ht
  • Java &= 运算符应用 & 或 && 吗?

    Assuming boolean a false 我想知道是否这样做 a b 相当于 a a b logical AND a is false hence b is not evaluated 或者另一方面 这意味着 a a b Bitwi

随机推荐

  • 如果struct A嵌入到B中,A上的方法可以访问B的方法和字段吗?

    struct A func a A BName id int string return a Name struct B A Name string func main b B Name abc fmt Println b Name 代码失
  • 如何快速使用prepareForSegue?

    我有一个带有名为 BasicPhrasesVC 的表视图的 ViewController 我想传递所选单元格中的数据以将其显示在下一个 ViewController 称为 BasicPhrasesVC 上 class BasicPhrase
  • 如何将 n*1 矩阵转换为 n*n 对角矩阵

    我有一个 nx1 矩阵我想将其转换为 R 中的 nxn 对角矩阵 正如 Ben Bolker 所建议的 您可以简单地使用定义您的单位矩阵diag my matrix lt diag 0 25 4 my matrix 1 2 3 4 1 0
  • 如何使用多个隔离来服务请求

    如何设置 Dart 服务器以使用所有可用核心来处理即将到来的请求 例如 通过使用多个隔离来服务请求 Use the shared true的论证HttpServer bind 例子 import dart io import dart is
  • 切换大小写表达式

    考虑一个表达式 1 AB CD 1 这个表达式的解法是什么 上面的表达式是C语言中的一个switch表达式 2 AB CD gt 2 ABCD gt 之后我应该做什么 下面是代码片段 include
  • 在注释中使用属性值? [复制]

    这个问题在这里已经有答案了 我的一个项目中有这个带注释的课程 注释类是我定义的 问题 我可以代替字符串吗 TP REPORT 使用一些财产它的值在编译时不知道而只能在运行时知道 PhoenixTable tableName TP REPOR
  • 交换的替代版本!还返回换出的值

    我在 IRC 上谈过这个问题 clojure今天的频道 但想在这里进行更详细的介绍 基本上 为了更好地理解原子 swap deref和 Clojure 并发作为一个整体 我想尝试编写一个函数 它不仅返回使用交换的值swap 还有被换出的值
  • 从 iPhone 应用程序启动 Google 地图应用程序。

    我正在尝试从我的 iPhone 应用程序启动谷歌地图 启动部分工作正常 但自从 iPhone 3 1 更新后 我认为是在这个时候 我得到了美国和加拿大的缩小地图 而不是放大我当前的位置 最初一切都工作正常 但有时更新后一切都停止正常工作 这
  • Facebook 是 openid 提供商吗?

    我对 facebook 以及 facebook 是否是像谷歌这样的 openid 提供商感到困惑 根据这个链接 http developers facebook com blog post 246 facebook 是一个 openid 依
  • 具有固定层数的渐变

    我画了一组四边形 对于每个四边形 我在其顶点都有一个定义的颜色 例如 现在我的四边形集看起来像 我以相当原始的方式实现了这样的结果 只需将其作为四边形每个顶点的属性颜色传递到顶点着色器即可 我的着色器非常简单 顶点着色器 version 1
  • OpenGL ES:如何用颜色对纹理着色

    我有阿尔法纹理 我想用某种颜色给它着色 所以它会根据颜色 alpha 值进行着色 但整体不透明度将仅由纹理 alpha 定义 这与多重纹理类似 但使用颜色而不是第二个纹理 怎么做 更新 我尝试过设置纹理组合器 颜色着色得很好 但 alpha
  • 如何对多个div id应用相同的js函数

    我有四个 div id 元素 并且我无法切换类的 id 并且我需要相同的 javascript 函数来为所有这些元素工作 而不仅仅是第一个元素 每次刷新页面时 该函数都会随机播放这首诗的诗句 到目前为止 它只适用于第一个 div 我不知道如
  • 使用 Python smtplib 发送没有密钥文件(仅 certfile)的电子邮件

    尝试使用以下脚本发送带有证书文件的电子邮件 import smtplib client smtplib SMTP myhost myport client ehlo client starttls certfile mycertfile c
  • 使用 send-mailmessage 发送内联图像

    我正在尝试使用 send mailmessage 从命令行发送带有内联图像的 html 格式的电子邮件 我到处都找过了 但找不到解决方案 我能够收到要发送的电子邮件 但收件人没有收到图像 这是我的代码 smtp smtp server co
  • 检测移动设备[重复]

    这个问题在这里已经有答案了 我有一个 Javascript 代码 用于检测是否从移动设备查看我的网站 下面是我的代码 function if navigator userAgent match Android i navigator use
  • 将 org.joda.time.Period 转换为 java.time.Period

    我正在尝试用 java time 替换 org joda time Period 我们将以下值存储在数据库中 P1M P1Y P1D PT1H PT1M 只是为了解析这个值 Period monthly ISOPeriodFormat st
  • 为什么 double 类型的主窗口是可选的?

    访问时UIapplication s主窗口它返回为UIWindow let view UIApplication sharedApplication delegate window view UIWindow 为什么它作为双重可选返回 这意
  • 检查数组值是否包含在字符串中

    我正在对某种联系表单进行一些客户端验证 该网站当前不在线 因此服务器端不相关 我正在尝试创建一个 单词过滤器 以在 提交 表单之前捕获任何滥用淫秽语言的行为 这是代码 没有淫秽内容 function filterInput str var
  • 如何下载 Facebook 个人资料图片

    在我的 Android 应用程序中 用户可以使用 facebook twitter 登录 https graph facebook com username picture https api twitter com 1 users pro
  • 为什么我可以访问封闭类引用的私有成员

    我看到很多有关访问封闭类的私有成员的问题 然而 我的问题恰恰相反 如果我有 作为示例 则以下代码 public class A private String outerString silly string static class B p