Tag: scope

是否可以通过某种方式限定最终参数以解决与匿名类成员的命名冲突?

“你为什么要这样做呢?” 尽管如此,有没有办法在不更改最终方法参数名称的情况下完成此操作? private Foo createAnonymousFoo(final Bar bar) { return new Foo() { private Bar bar = SomeUnknownScopeQualifier.bar; public Bar getBar() { return bar; } public void doSomethingThatReassignsBar() { bar = bar.createSomeDerivedInstanceOfBar(); } }; } 显然,如果没有doSomethingThatReassignsBar调用,您将不需要成员Bar等。 在这种情况下,简单的解决方法是将final Bar bar更改为final Bar bar final Bar startBar ,然后分配就可以了。 但出于好奇,是否有可能专门提到final Bar (类似于你说Super.this的方式)?

Spring bean的DESTROY-METHOD属性和web应用程序“prototype”d bean

可以得到属性“destroy-method”。 首先,即使我将不存在的方法名称键入“destroy-method”属性, Spring初始化完成得很好(已经很奇怪!)。 接下来,当bean具有“原型”范围时,我认为它必须在应用程序之前销毁 关闭了。 这没有发生,在我的情况下根本就没有调用过。 虽然,在提取这个bean之后,我可以明确地调用这个方法并且它可以完成它的工作。 你能解释为什么在我的Spring 2.5案例中从未调用过这个方法吗? ps该方法存在,它是公共的,没有参数。 我认为这似乎是一项更艰巨的任务。 问题是每当上下文关闭时都会调用此destroy方法,这是一种罕见的情况。 我的问题是: 我有一个网络应用程序。 我有一个“原型” – 豆角。 我需要的是当前会话关闭时,Spring会自动调用这个destroy方法。 我可以手工完成,但有没有解决方法如何让Spring做这个工作呢? 它会在会话被销毁后销毁bean,Spring可能会在销毁之前调用该bean上的方法吗? ps Spring不管理原型bean的生命周期,所以Spring不会破坏它们:)

Java静态导入

通过实验,我发现即使在静态上下文中,Java非静态方法也会覆盖范围内所有相同的命名方法。 即使不允许参数重载。 喜欢 import java.util.Arrays; import static java.util.Arrays.toString; public class A { public static void bar(Object… args) { Arrays.toString(args); toString(args); //toString() in java.lang.Object cannot be applied to (java.lang.Object[]) } } 我在规范中找不到任何相关内容。 这是一个错误吗? 如果不是,有没有理由实施这样的语言? UPD:Java 6不编译此示例。 问题是 – 为什么?

何时使用Spring原型范围?

我想知道我什么时候应该在Spring中使用prototype范围? 我已经理解,如果请求bean, singleton将返回相同的对象实例。 那我们为什么要考虑prototype ? 通过示例进行解释将有助于理解对它的需求。

Java:使用局部变量的匿名内部类

如何在我的匿名内部子类中获取传递给此方法的userId的值? public void doStuff(String userID) { doOtherStuff(userID, new SuccessDelegate() { @Override public void onSuccess() { Log.e(TAG, “Called delegate!!!! “+ userID); } }); } 我收到此错误: 不能在不同方法中定义的内部类中引用非最终变量userID 我很确定我不能将它指定为final,因为它是一个具有未知值的变量。 我听说这种语法确实以某种方式保留了范围,所以我认为必须有一个我还不太了解的语法技巧。

对内部类的局部变量访问需要声明为final

我遇到了一个局部变量访问内部类的问题,需要声明final。 它来自方法createGrids() – >“ squares[i][j] = 0; ”我是一个需要声明为final的局部变量。 我不知道为什么,我在字段中添加了final,但它不能正常工作。 import java.util.ArrayList; import java.util.Random; //省略 public class Minesweeper{ private JFrame frame; private int cols = 9; private int rows = 9; public static final int GRID_HEIGHT = 9; public static final int GRID_WIDTH = 9; final JButton[][] grids = new JButton[GRID_WIDTH][GRID_HEIGHT]; final int [][] squares = […]