And*_*ice 1 java eclipse android
我有一个静态方法.在我decalare变量的方法中,它在eclipse中显示一个错误,说该变量应该被decalared为final.我能否知道这个的原因,如果静态方法中的变量被声明为final?我正在编写一个Android应用程序,我应该将该应用程序的当前Context作为参数传递.因此,当我将当前上下文传递给方法并尝试将其复制到局部变量中时,我收到此错误,说该变量应声明为final.我的方法是这样的:
public static void myfunc(Context ctx, int a)
{
Context myctx=ctx;
}
Run Code Online (Sandbox Code Playgroud)
错误显示在Context myctx = ctx的行; 宣布并要求我宣布它为最终决定.
不必要.您可以在静态函数中包含非final变量.
经典例子:
public static void main(String args[])
{
int i = 10;
}
Run Code Online (Sandbox Code Playgroud)
编译器的常规设置不会这样做.你没有被迫宣布它是最终的.
有第三方工具(如checkstyle和pmd)可以添加错误和警告.在这种情况下,变量在方法中没有其他地方改变,因此可以声明它final
如果你在变量下面实例化了一个匿名类,并在那里使用变量(但你没有向我们展示) - 那么它必须被声明为final.
| 归档时间: |
|
| 查看次数: |
1257 次 |
| 最近记录: |