问题标签 [inner-classes]

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 投票
2 回答
11339 浏览

java - 关于外部类私有变量访问的java内部/外部类问题

我有以下java类:

当我在 Outer 和 Outer$Inner 上运行 javap 时,我得到以下信息:

我有两个问题:

1)为什么java编译器生成静态方法,在外部类中使用'Outer'参数来访问它的私有变量?为什么不是内部类可以通过其 this$0 成员轻松调用的实例方法?

2)为什么内部类中的 this$0 是 final ?如果它不是最终的会发生什么?

谢谢并恭祝安康。

0 投票
2 回答
1656 浏览

java - 从 JRuby 实例化非静态 Java 内部类

所以给定以下java类:

我可以通过以下方式从 Java 创建内部类的实例:

但是,我似乎无法从 JRuby 做同样的事情

这样做的正确方法是什么?

0 投票
3 回答
1959 浏览

java - 我们可以在外部类的构造函数中创建内部类的对象吗?

我们可以在外部类的构造函数中创建内部类的对象吗?

0 投票
2 回答
336 浏览

java - 如何在匿名类中引用更高的类

我有这个代码:

0 投票
1 回答
12898 浏览

java - 在Java嵌套类中,封闭类可以访问内部类的私有成员吗?

在 Java 中,内部类可以访问封闭类的私有成员。但是外部类可以访问内部类的私有成员吗?这与内部类是否是静态的无关。我认为这不是真的,但以下代码似乎可以编译并正常工作。

0 投票
1 回答
2005 浏览

java - 内部类问题。表达式错误的非法开始

我正在练习使用内部课程,但在作业问题上遇到困难:如下:

创建一个 Swing 组件类 BetterButtons,它扩展 JPanel 并具有三个标记为“一”、“二”和“三”的 Jbutton 实例。在 BetterButtons 的构造函数中,编写一个实现 ActionListener 的本地类 ButtonListener。这个本地类有一个字段字符串名称和一个构造函数,该构造函数接受一个分配给字段名称的字符串参数。方法 void actionPerformed 在控制台通知上输出标记为 name 的按钮已被按下。在 BetterButtons 的构造函数中,创建 ButtonListener 的三个实例,每个按钮一个监听其动作。

我快完成了,但是,我在该行得到一个非法的表达式开始错误:

这是我的代码:

另外,如何引用要分配给字符串变量名的正确值?

先感谢您

0 投票
2 回答
1089 浏览

java - (嵌套?)按钮的匿名内部类

我使用匿名内部类来获取按钮 obj:

我想在任意大小的 GWT FlexTable(基本上是一个自动调整大小的表)中使用它。

如果我做这样的事情:

该按钮仅针对后一个显示(因为只有一个实例)。由于上表将以编程方式填充,因此为每个可能的实例定义一个新按钮并不实际。

我尝试了以下方法:

但是,这根本不会编译(第一个;我猜),我有点迷茫——我怎样才能实现这个效果?

谢谢

0 投票
15 回答
19299 浏览

java - Java(匿名与否)内部类:使用它们好不好?

在我的一些项目和一些书中,据说使用内部类(匿名与否,静态与否) - 除非在某些受限条件下,如EventListeners 或Runnables - 是最佳实践。他们甚至在我的第一个行业项目中被“禁止”。

这真的是最佳实践吗?为什么?

(我不得不说我经常使用它们......)

-- 编辑 ---
我无法在所有这些回复中选择一个正确的答案:大部分都是正确的:我仍然会使用内部类,但我会尽量减少使用它们!

0 投票
2 回答
92 浏览

java - 共享公共超级实例的子实例

我有一个 Super 类和几个子类 Sub1、Sub2、...

有没有办法实例化共享同一个超级实例的对象 sub1、sub2?

这种情况来自这样的内部嵌套类配置:

但是内部文件已经增长太多了,我会觉得将它们放在单独的文件中会更舒服。他们需要共享同一个 superFields 实例,所以我的问题。

0 投票
3 回答
4500 浏览

java - Spring:将私有内部类作为外部类的成员注入?

我有以下类结构

在我的 Spring 配置文件中,我想创建一个 Outer bean,并将 MapperA 或 MapperB 之一分配为属性。这可能吗?

编辑:更多信息,基于答案的反馈:

  1. 我对上面的例子变得懒惰了。我确实有一个用于 Mapper 实例变量的公共 setter/getter。

  2. 所有 Mapper 类都是内部类的原因是因为它们可能有很多,而且它们只会在这个类中使用。我只是不希望我的项目中有大量杂乱无章的课程。也许工厂方法是一个更好的主意。