问题标签 [anonymous-inner-class]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
335 浏览

d - 为什么匿名类“需要 opCmp”?

我不确定如何解释这一点,所以请让我澄清任何没有意义的事情。我有一个接口和一个模板函数,它返回基于编译时参数返回匿名内部类的函数:

现在,getMyInterfaceFactory()曾经是getMyInterface(),它曾经直接返回匿名对象。一切正常。当我添加工厂函数时,我在从 Object 启动期间开始收到异常:

所以,我查看了 druntime 源代码中的 throwing 行,它看起来像是 object 的 opCmp 的默认实现只是 throws。我没有MyInterface在任何地方比较工厂功能或 s。我将工厂存储为字符串索引关联数组的值,但是当我将匿名类直接存储在该数组中不需要 opCmp,只有当我开始存储函数时才需要。如果我插入一个 opCmp(使用内存地址),一切似乎都正常工作,但 MyInterface 并没有真正的可比性,所以我宁愿不这样做,除非我必须这样做。如果可能的话,我想知道在匿名类上调用 opCmp 的原因/位置,以及如何防止或解决它。

注意:在 Object 中 opCmp 的默认实现包括一个模糊引用错误的注释,一个注释掉的内存地址比较,然后是抛出版本。

谢谢!

编辑:我应该提一下,我尝试了 windbg 和 ddbg 来准确追踪 opCmp 被调用的位置,但在这两种情况下都失败了。Windbg 没有提供任何有用的信息,因为它固执地拒绝加载任何符号,ddbg 加载了符号,但是在初始化期间(在静态模块构造函数之后但在 main 之前)发生了异常,并且可能 ddbg 无法访问运行时符号?

0 投票
4 回答
1699 浏览

java - Java中的公共匿名内部类

默认情况下匿名内部类是私有的吗?我可以将它们公开吗?

我需要通过反射访问方法。

0 投票
1 回答
1785 浏览

java - 离线同步 Android 应用的通用架构

我正在构建一个类似于 Android 应用程序的 POS,即使数据连接暂时丢失,它也需要工作。

这个想法是在数据连接可用时立即向服务器报告所有事务。如果没有,请将其存储在本地 SQLite 中,并稍后在连接可用时同步。

第一个计划是将单个事务保存在与服务器上维护的相同的通用数据库结构中,但由于服务器上有许多不同类型的事务和关系,这将有效地从服务器上复制整个数据库结构电话本身。

另一种方法是仅保存用于通知服务器更改的最终 HTTP 请求。这种方法的优点是它只需要一个表,只存储 URL、请求内容、方法等。但是可能有一些调用需要在响应上执行代码,这将被实现为匿名内部类. 这种方法的唯一问题似乎是序列化这些匿名内部类,以便即使在(可能的)电话重启后也可以从数据库加载它们并执行它们。

实现这一点的最佳方法是什么?选项A还是选项B?如果选项 B,是否真的可以序列化和反序列化匿名内部类(在这里有效地用作闭包)?

0 投票
4 回答
242 浏览

java - Java - 这些是哪些类型的类;哪个是匿名内部类?

我已经阅读了几篇相互矛盾的在线文章。我认为这将是匿名内部类的一个示例:

但是,我也看到这被描述为一个匿名内部类:

哪个是哪个,为什么?谢谢!

0 投票
2 回答
866 浏览

java - 具有内部类和最终变量的线程化 Java 服务器

我编写了以下代码来实现线程服务器:

现在这似乎可行,但经过反思,我并不真正了解下一个连接到达时最终套接字变量套接字发生了什么。每个线程如何与启动线程时当前的套接字实例相关联?- final关键字对此负责吗?

0 投票
3 回答
5621 浏览

java - Java - 接口,实例化接口?

所以我刚刚在网上找到了这个代码示例,我又重新看了一遍,但很困惑。

通过查看它,我收集到的(可能是错误的)是它传递给 NumberPrinter 类中的 print 方法一个 Printer 对象。但是这个接口也叫Printer,那我们不就是实例化一个Printer接口的匿名类,定义方法然后传递吗?

我的基本问题是,我最初的假设是否正确?如果是这样,我认为您无法实例化接口?

0 投票
1 回答
569 浏览

java - Java - 我如何从匿名内部类访问非最终变量?

正如您在以下代码中看到的,我正在从 ActionListener 匿名内部类访问 JLabel。这为我提供了没有错误,所以这是如何允许的,但是如果 JLabel 是 INSIDE,那么没有 final 修饰符就不允许该方法?

0 投票
1 回答
1076 浏览

java - 编译器正在创建额外的类文件,其中包含 $

我正在使用 Eclipse,并且使用 SWT 编写了一个 Java 应用程序。当 Eclipse 编译我的程序时,它将我的主文件重命名为 4 个不同的文件,如下所示:

  • MainFile.class
  • MainFile$1.class
  • MainFile$2.class
  • MainFile$3.class

当我从命令行运行这个程序时,我得到

找不到主类:MainFile.class。程序将会退出。

我真的不明白为什么会这样。

0 投票
4 回答
2286 浏览

android - 我是否需要注销“匿名”广播接收器

我最近问了一个关于检查已发送 SMS 状态的问题,给出的答案是一个代码片段,它注册了两个“匿名内部”(如果不正确,请更正我的术语)BroadcastReceivers来收听 SMS 发送/传递的广播。这些接收器只需要接收有关我的应用程序刚刚发送的 SMS 的数据,因此不需要永久收听。

我的直接想法是“好吧,在我完成它们后我需要注销它们”,但这是正确的吗?我问了这个海报,因为他没有包含任何注销代码,但没有得到回复。该代码似乎是一种非常标准的方式来做我想做的事情,因为它出现在许多 Android 开发网站上。这里是:

代码工作正常。

更重要的是,它不会收到在我的应用程序外部发生的任何 SMS 发送/传递事件的通知。例如,我可以在注册后发送短信,BroadcastReceivers但看不到任何Toast消息。

所以,我有两个问题:

  1. 我需要注销这些BroadcastReceivers吗?
  2. 如果不是,为什么不呢?
0 投票
1 回答
1332 浏览

java - 在 JButton 中使用匿名 ActionListener 隐藏 JFrame

我有一个欢迎(或菜单)窗口(JFrame),每个可能的操作都有一些按钮(JButton)。每个都应该启动一个新窗口并隐藏欢迎窗口。我知道我可以做到这一点setVisible(false);。但我还不能让它工作。

这是我拥有的一个代码示例:

我的问题是,我怎样才能使用像这样的匿名类呢?

提前致谢!