除了使用反射来访问匿名内部类的成员之外,还有其他方法吗?
匿名内部类具有类型,但没有名称。
您可以访问未由命名超类型定义的字段。但是,一旦分配给命名类型变量,该接口就会丢失。
显然,您可以从内部类本身内部访问字段。添加代码的一种方法是通过实例初始化程序:
final AtomicInteger y = new AtomicInteger();
new Runnable() {
int x;
{
x = 5;
doRun(this);
y.set(x);
}
public void run() {
... blah ...
}
};
匿名内部类表达式返回的值具有匿名类型,因此您有机会在类本身之外使用它:
final int y = new Runnable() {
int x;
{
x = 5;
doRun(this);
}
public void run() {
... blah ...
}
}.x;
您也可以通过声明类似于以下内容的方法传递它:
<T extends Runnable> T doRun(T runnable);
问题内容: 我想使用a 对图进行拓扑排序。为简便起见,我想为比较器使用匿名内部类。但是,我需要访问该图才能确定我正在查看的节点的程度。这可能吗? 正确的代码 问题答案: 是的,使其最终化: 有关最终关键字,请参见最终词: 匿名本地课程 第二种情况涉及最终变量,实际上是语言语义所规定的。在这种情况下,除非声明为final,否则Java编译器将不允许您使用变量。这种情况出现在闭包(也称为匿名本地类)中
把一个匿名类转成内部类 操作步骤: 菜单栏: Refactor —> Convert Anonymous to Inner...
如何访问main方法中的匿名内部类对象。它给出了编译时错误,称“无法对非静态方法进行静态引用”。如果我将匿名内部类设置为静态,那么我可以访问我想访问的ut,而不必将其设置为静态。 怎么做。请帮帮忙。
本文向大家介绍Java匿名类,匿名内部类实例分析,包括了Java匿名类,匿名内部类实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java匿名类,匿名内部类。分享给大家供大家参考,具体如下: 内部类 匿名类 首发日期 :2018-03-25 内部类: 在一个类中定义另一个类,这样定义的类称为内部类。【包含内部类的类可以称为内部类的外部类】 如果想要通过一个类来使用另一个类,可以定
问题内容: 请看下面的代码: 在上面的代码中,在方法ModifyList()中声明的匿名内部类的实例能够访问传递给该方法的参数。AFAIK Java为内部类创建一个单独的字节码文件。 谁能解释一下Java在字节码级别上如何处理这些局部变量绑定?我的意思是,Java如何精确跟踪对作为参数传递给该方法的对象的引用? 任何帮助将不胜感激! [抱歉我的英语不好! 如果您理解我的问题,请编辑这篇文章,并删除
在以下片段中: 有没有办法从内部匿名类引用匿名类的外部实例? 第二个错误是在解决方案上,我在这里找到了一个匿名内部类的外部类的关键字。这些问题似乎共享一些概念和问题空间,但性质不同。