私有内部类综合了意想不到的匿名类

2024-03-08

当您编译带有私有​​内部类的 Java 类时,由于某种原因,似乎会自动合成一个匿名类。这个类足以重现它:

public class SynthesizeAnonymous {
    public static void method() {
        new InnerClass();
    }

    private static class InnerClass {}
}

编译时,会生成预期的SynthesizeAnonymous.class and SynthesizeAnonymous$InnerClass.class文件,但它也会生成一个奇怪的SynthesizeAnonymous$1.class对应于匿名子类的文件java.lang.Object那是合成的。如果你看反汇编javap,它的默认构造函数似乎是InnerClass获得该匿名类型的隐藏参数,并且nullnew InnerClass()叫做。

为什么要创建这个类?即使它被创建InnerClass不是静态的,但如果满足以下条件则不会创建InnerClass不是私有的或没有实例InnerClass曾经被创造过。它是某种形式的访问控制吗?这是如何运作的?


创建此类是为了向您提供对私有构造函数的访问。

看一眼这个问题 https://stackoverflow.com/questions/921025/eclipse-warning-about-synthetic-accessor-for-private-static-nested-classes-in-jav了解详情。

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

私有内部类综合了意想不到的匿名类 的相关文章

  • 如何通过无头活动处理静默 SEND 意图

    正如提问的用户所说 Android 上的默认浏览器如何发送 SEND 意图 https stackoverflow com questions 3320930 how does the default browser on android
  • 删除列表视图项目之间的间距

    我正在尝试在 Android 中制作一个包含图像的 ListView 我希望图像在列表中彼此相对 但我似乎无法消除间距 这是我的 listview xml
  • Android Studio - 无法识别的 VM 选项“MaxPermSize=256m”

    我刚刚在 Elementary OS 0 3 Freya 上安装了 Android Studio 并使用终端运行它 然而 在我第一次启动时 显示一条错误消息 Gradle 测试 项目刷新失败 无法启动守护进程 这个问题可能是由 守护进程的配
  • JFace DialogCellEditor:如何使按钮始终出现?

    我用的是JFaceDialogCellEditor在 JFace 的一行单元格中显示一个按钮TableViewer激活时会触发一个对话框 此行为适用于以下代码 但仅当显式选择托管按钮的表的单元格时才会显示该按钮 public class C
  • 在远程 Tomcat 上自动部署 Java 应用程序

    我希望能够自动将 Java 应用程序部署到 tomcat 服务器 现在的情况 正在 Eclipse 中开发 Java 项目 Tomcat 服务器在另一台机器上运行 提供该项目的 WAR 文件 我的目标 可以轻松编译项目并将其部署到远程 To
  • JMS队列消息接收顺序

    我按顺序在同一目标中添加两条 JMS 消息 这两条消息的接收顺序是否与我添加它们的顺序相同 或者是否有可能进行相反的排序 即首先检索目的地中首先接收到的消息 我将添加到目的地 producer send Msg1 producer send
  • 加载 XSLT 文件时解析相对路径

    我需要使用 Apache FOP 进行 XSL 转换 我的代码如下 Setup FOP Fop fop fopFactory newFop MimeConstants MIME PDF out Setup Transformer Sourc
  • Android WebView - 带有经过身份验证的代理

    我目前正在尝试调试围绕 WebView 构建的 Android 应用程序 我负责处理的开发网络环境 不是我的选择 这是 企业 安全决策 是WPA WiFi 代理服务器 代理身份验证 虽然a上的说明以前的答案非常有帮助 https stack
  • 关于线程的停止

    我开发了一个代码 它将在执行时启动两个线程 public class MyThread1 extends Thread extend thread class public synchronized void run synchronize
  • 如何向正在运行的 Linux 进程发送 Ctrl-Break?

    我正在调试在 Sun 的 JDK 1 4 2 18 上运行的应用程序中的内存泄漏 该版本似乎支持命令行参数 XX HeapDumpOnCtrlBreak 这可能会导致 JVM 在遇到控制中断时转储堆 如何将其发送到 Linux 机器上的后台
  • “找不到符号”或“无法解析符号”错误是什么意思?

    请解释以下有关 找不到符号 无法解析符号 或 找不到符号 错误 Java 中 的信息 他们的意思是什么 哪些因素会导致它们 程序员如何修复它们 这个问题旨在对 Java 中的这些常见编译错误进行全面的问答 0 这些错误之间有什么区别吗 并不
  • 在 Java 中从 Json 字符串中提取字段

    我正在尝试从以下 Json 字符串中提取每个 company id 的 id String test company id 4100 data drm user id 572901936637129135 direct status id
  • 如何在 selenium Chrome 功能中设置默认下载目录?

    请查找以下具有 chrome 功能的代码 事实上浏览器并没有将文件下载到指定的路径 private static DesiredCapabilities getChromeCapabilities throws Exception Stri
  • GSON 预期为 BEGIN_ARRAY,但实际为 BEGIN_OBJECT

    当我仅收到列表中的一项时 我收到此错误 我在服务器端 REST Web 服务中使用 Jersey 只有当列表返回一个元素并且它具有0 elements I get java lang NullPointerException但是当它有多个时
  • 将 JSON 与嵌套数组和 json 进行比较(数组顺序无关紧要)

    你好 我正在尝试比较java中的两个json 每个键可以包含一个json对象或json对象数组 并且它们中的每个也可以是数组或json 这是 Json 的示例 id 123123asd123 attributes name apps val
  • 滚动文件实现

    我一直很好奇滚动文件是如何在日志中实现的 如何开始用任何语言创建一个文件写入类 以确保不超过文件大小 我能想到的唯一可能的解决方案是 write method size file size size of string to write i
  • 将 TextField 与 LibGDX 结合使用

    我正在使用 LibGDX 开发一款 Android 游戏 并且想要实现两个TextFields 登录到服务器 据我所知我需要使用Stage https libgdx badlogicgames com nightlies docs api
  • 如何获取eclipse中的工作空间路径? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在研究PDE Eclipse Plugin Project 我需要获取工作区路径 我的文本小部件 swt 应该设置为当前工作空间路径 如
  • 你在实际项目中使用过Quickcheck吗[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 快速检查 http www cs chalmers se rjmh QuickCheck 及其变体 即使有一个Java https bitbuc
  • 如何将钱兑换成零钱

    尝试将输入的数字转换为 25 美分 50 美分 10 美分和 10 分 有几个问题 public class Coins public static void main String args private int quarters di

随机推荐

  • ViM-LaTeX、python 和 Mac OS 10.8.1 以及一个奇怪的错误

    我刚刚将我的机器更新到 Mountain Lion 10 8 1 并尝试安装 vim latex 我已经每天使用该套件大约 5 年了 但是当尝试进行全新安装并打开 tex 文件时 我收到以下错误消息 UnitCircleAnalysis t
  • 提取模式后的值

    一个初学者的问题 我有一个这样的列表 x lt c aa v12 bb x21 cc f35 xx r53 bb g 25 yy h48 nn u75 bb 26 gg m98 但还有更多行 我需要提取 bb 和 之间的内容 IE 我想 x
  • 父类可以调用子类方法吗?

    参考here https stackoverflow com questions 1385895 accesing a function via string stored in hashtable A是预编译的Java类 我也有源文件 B
  • OSMDroid 从资产文件夹加载自定义离线图块

    我想知道是否可以做这样的事情 我知道需要修改一些现有代码才能实现这一目标 但我想知道是否有人知道在哪里查看以及如何执行此操作 我在地图上的特定区域放置了一些自定义图块 作为 OSM 图块提供程序的替代品 但需要将它们存储在 assets 文
  • 将 JSON 转换为 Python 对象:如何处理 DateTime 转换?

    我有一个 C 控制台应用程序 可将 POCO 类序列化为 JSON 字符串 我使用 JSON Net 进行序列化 此应用程序中的 JSON 被转储到文件中 并由 Python 2 7 脚本读入 问题就在这里 JSON 序列化获取我的类上的所
  • 如何使用curl和PHP设置自定义请求标头键?

    我使用curl 和php 上传文件 我需要帮助来设置自定义请求标头键 例如 X Filename blahblah zip X Filesize 2677 X Filetype application zip 您必须使用curl setop
  • 如何修改 OpenXML TableCell 的前景色和背景色?

    我正在创建表格单元格 如下所示 private static TableCell GetHeaderCell string cellText var tc new TableCell new Paragraph new Run new Te
  • 如何将对象排序到存储桶中表示为有效的 JPQL 表达式?

    我想显示一个 2D 图表 其中包含给定时间跨度内处理的对象数量 映射在 JPA 中 在 30 分钟的时间内 这个数量可以扩展到大约 30k 个对象 作为一名 DBMS 我在 4 2 21 版中使用 PostgreSQL 9 4 和 JPA
  • 为什么我不需要在 C++20 中的依赖类型之前指定“typename”?

    这段代码在 C 20 中编译 使用 gcc 10 1 没有使用typename依赖类型之前的关键字std vector
  • Docker - eclipse-mosquitto:2.0.7 错误:地址不可用

    我正在尝试在 Windows 10 中将 mosquitto 作为 docker 容器运行 下面出现错误日志地址不可用 1614449526 mosquitto version 2 0 7 starting 1614449526 Confi
  • Firefox 开发者版缺少添加监视功能

    更新到 52 0a2 后 我无法在 javascript 调试器中创建自己的表达式 添加监视等 当我右键单击某个变量时 我过去只是从上下文菜单中选择 添加文本到监视表达式 但在最新版本中它丢失了 我必须启用某些功能吗 thanks The
  • 创建一个倒计时器,每 5 秒打印一次列表中每个值的剩余时间

    我正在尝试在 Flutter 中创建一个倒计时器来打印剩余时间每 5 秒直到计时器用完 然后为值列表中的下一个值运行相同的倒计时器 下面的递归函数接近 但它在转到下一个值之前等待 迭代 List即使剩下的时间越来越少Timer import
  • 将文本字段添加到 SKScene

    我正在使用 Sprite Kit 创建一个游戏 我想添加一个文本字段供玩家输入他们的名字 如何使用 Sprite Kit 创建文本字段 我将创建一个玩家对象 我已经设置了 并使用他们输入的名称和默认分数 0 混合 UITextfields
  • 来自 GET/POST 的 Rails 参数

    我对 Rails 相当陌生 正在编写一个登录表单 我使用 form tag 将用户的提交传递给帐户控制器 现在 我不希望用户能够通过 GET 请求输入其登录详细信息 那么如何检查某个参数是 GET 还是 POST 参数 提前致谢 在 Rai
  • Google API 将请求从 Android 应用发送到 google plus

    我正在开发一款安卓应用程序 众所周知 Facebook SDK 提供了使用请求对话框向其他用户发送请求的功能 https developers facebook com docs android send requests https de
  • Spring Boot - 自定义 JSON 序列化 [重复]

    这个问题在这里已经有答案了 在使用 Jackson 库时 我通常使用 mixin 来执行自定义序列化和反序列化 Spring Boot 应用程序中的 RestController 具有类似于下面列出的方法 我猜 Spring Boot 使用
  • app.post() 不适用于 Express

    我遇到 Express 问题 我尝试使用 app post 函数 但它不起作用 我不知道为什么 虽然我包括了 bodyParser 问题 页面加载没有响应 没有错误消息 我没有看到 console log app js var expres
  • 升级TortoiseSVN 1.8问题

    我升级了乌龟SVN http en wikipedia org wiki TortoiseSVNWindows XP 上从 1 7 12 升级到 1 8 之后它要求升级SVN格式 我尝试升级 但它一直询问并且命令没有产生错误 我尝试从服务器
  • 对于定义为 0 的宏,#ifdef 和 #if 之间的细微差别

    给定以下 C 文件 cat macros c ifdef MACRO error MACRO is defined else error MACRO is undefined endif if MACRO error MACRO is no
  • 私有内部类综合了意想不到的匿名类

    当您编译带有私有 内部类的 Java 类时 由于某种原因 似乎会自动合成一个匿名类 这个类足以重现它 public class SynthesizeAnonymous public static void method new InnerC