问题标签 [anonymous-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.
java - 为什么匿名类不能直接实现多个接口?仅仅是因为语法还是有其他原因?
有一个内部问题,为什么 java 匿名类不能同时实现和子类化?或者仅仅是因为语法?
java - 在Java中,匿名类可以声明自己的类型参数吗?
匿名类可以声明自己的类型参数吗?
java - 在 ScheduledExecutorService 中运行的任务本身中停止周期性任务
在 ScheduledExecutorService 中运行时,是否有一种很好的方法可以从任务本身中停止重复任务?
可以说,我有以下任务:
从外面看,很容易通过 f.cancel() 取消,但是我怎样才能在指定的地方停止重复呢?(通过 AtomicReference 传递 Future 是不安全的,因为当 scheduleAtFixedRate 返回 f 并且变量设置也很晚时存在一个潜在的窗口,并且任务本身可能已经运行,在引用中看到 null。)
java - 匿名类*总是*维护对其封闭实例的引用吗?
我正在使用一些代码,其中一个对象“foo”正在创建另一个对象“bar”,并将其传递给Callable
. 在此 foo 将返回 bar 之后,然后我希望 foo 变得无法访问(即:可用于垃圾收集)。
我最初的想法是Callable
匿名创建。例如:
然而,我突然想到,这实际上可能无法按预期工作,因为内部类通常会保留对其封闭对象的引用。我不想在这里引用封闭类,因为我希望在Callable
仍然可以访问的时候收集封闭对象。
另一方面,检测封闭实例实际上从未被引用应该是非常简单的,因此 Java 编译器可能足够聪明以至于在这种情况下不包含引用。
那么......即使匿名内部类的实例从未实际使用封闭实例引用,它是否会保留对其封闭实例的引用?
java - 访问容器字段
我有一个非常愚蠢的问题要问。
我正在使用 NetBeans 构建一个小应用程序,但遇到以下问题;我的主类被调用mainApp
并且正在扩展 a JFrame
,而后者又包含一个JPanel
被调用的类drawingBoard
,我也出于各种(和离题的)原因进行了扩展..
核心问题是,在某些时候我需要访问其中一个字段,mainApp
但由于 NetBeans 实例化我的主类的方式..(作为匿名类)我无法获得对容器的引用(那是我的 mainApp )。
我可以做些什么来获取mainApp
其字段的引用并在其中设置其值drawingBoard
?
java - 是否可以在使用反射时创建匿名类?
我希望能够在运行时实现一个在对象运行初始化程序之前调用的方法。这将允许我设置在初始化期间使用的字段。
这是一个例子:
我可能最终会使用方面,但我想知道是否有纯 Java 方式。
java - 如何将参数传递给匿名类?
是否可以向匿名类传递参数或访问外部参数?例如:
侦听器有什么方法可以访问 myVariable 或传递 myVariable 而不将侦听器创建为实际的命名类?
java - 通过匿名类-java引用封闭对象转义
我在实践中阅读 Java 并发,下面的示例来自于此。我的问题是这个引用转义是什么意思?会有什么问题?. this 引用如何从 doSomething(e) 中逃脱。
这如何解决问题
编辑 :
我已经尝试了以下示例
由于逃生对象的构造不完整 这输出 shal 62 62
当我像这样更改我的代码时
就像这里一样。它输出 shal 25 25
我对吗 ?还有是否对操作进行了重新排序,因为在第一个示例中,年龄被初始化为 62。即使在我的第二个示例中没有使逃逸者字段成为 final,它也可以工作!
java - 有人可以向我解释这个 Java 语法吗?
有人可以向我解释这个 Java 语法吗?外括号内的那些括号在做什么?
java - 匿名内部类
上面的示例代码无法编译。它说“两个无法解决”。这段代码有什么问题??