final相关内容

为什么Java内部类要求外部类的变量为final?

可能重复: Java-内部类和局部变量 如何将变量标记为最终允许内部类访问它们? Local Inner类不仅可以访问实例变量,还可以访问方法(在其中定义它们的方法)的局部变量,但是必须将局部变量声明为final. 为什么在这种情况下必须将局部变量声明为final? 解决方案 原因是本地内部类的实例可能会从方法中返回,并且在方法返回之后才返回.在这种情况下,访问它们时本地方 ..
发布时间:2020-11-06 18:52:50 Java开发

强制Java Lambda表达式捕获Java中的非最终变量

是否可以让lambda表达式捕获不是有效的final变量? 我知道我的代码可以捕获它们,因此可以很好地工作,目前,我必须创建一个新变量,该变量将要传递给lambda表达式的非最终变量复制. final SomeClass otherObj; for(int i = 0; i ..
发布时间:2020-11-06 18:52:47 Java开发

为什么在创建不可变类时将字段声明为私有?

在创建一个不可变的类时,所有字段都被声明为final,因此它们的值不能被修改.可以,但是为什么我们还要将它们声明为私有? 解决方案 如果该字段是对可变对象的引用,则将其设置为final可以防止将该引用反弹到另一个对象目的.但是,仍然可以修改对象,实际上是对包含对象进行了一步一步的不变性. 为防止这种情况,您可以将字段设置为private(如果他们看不到,则无法对其进行修改). ..
发布时间:2020-11-06 18:52:44 Java开发

空检查时可能尚未初始化错误

我正在检查变量是否已初始化,但是那时netbeans给了我variable reader might not have been initialized警告.如何解决/抑制这个问题? 这是我的代码(摘要): final Reader reader; try { reader = new Reader(directory); //additional st ..
发布时间:2020-11-06 18:52:42 Java开发

为什么Java的BigDecimal类没有声明为final?

在检查Java的 BigDecimal 类的源代码时,令我惊讶的是它被未声明为final class: BigDecimal类 public class BigDecimal extends Number implements Comparable 不可变,任意精度的带符号十进制数字. (来自 Oracle文档) 是否有特定原因,或者开发人员只是 ..
发布时间:2020-11-06 18:52:36 Java开发

关于Java中的局部最终变量

在Java程序中,在方法声明中定义为String的参数.但是在方法定义中,它是作为final String变量访问的.是否会导致某些问题(例如安全性,内存问题)? 例如: 方法声明 join(String a,String b); 方法定义 public void join(final String a,final String b) { Authenticat ..
发布时间:2020-11-06 18:52:33 Java开发

PHP与其他语言中的静态变量等效吗?

我想知道PHP在类中是否具有某种类型的变量,其功能类似于其他语言中的static.我的意思是,同一类的所有对象都使用相同的变量,并且当它在一个变量上更新时,它在每个变量上都更新.静态接近,因为它在所有对象中共享,但是我需要能够对其进行更新.我需要为此使用全局变量吗? 解决方案 我认为static是您想要的.您可以更新静态变量,只需在“静态上下文"中进行操作即可(即,使用::运算符. ..
发布时间:2020-11-06 18:52:23 PHP

关键字final有什么用?

在下面的代码中,如果我从EditText中删除了关键字final,那么我在将EditText对象(et)传递给意图的第(6)行中遇到了错误.我必须在这里知道final关键字的含义... final EditText et=(EditText)findViewById(R.id.t); Button b=(Button)findViewById(R.id.b1); ..
发布时间:2020-11-06 18:52:19 Java开发

在Java中定义最终的String是否有意义?

可能重复: 字符串和终结符 来自 http://docs.oracle.com /javase/6/docs/api/java/lang/String.html 我可以看到: Strings are constant; their values cannot be changed after they are created. 这是否意味着final String在Java中实 ..
发布时间:2020-11-06 18:52:10 Java开发

使用`LinkedBlockingQueue`可能会导致空指针异常

我最近正在学习Java并发编程.我知道final关键字可以保证发布的安全性.但是,当我阅读LinkedBlockingQueue源代码时,发现head和last字段未使用final关键字.我发现enqueue方法在put方法中被调用,并且enqueue方法直接将值分配给last.next.此时,last可能是null,因为last没有用final声明.我的理解正确吗?尽管lock可以保证last读 ..
发布时间:2020-11-06 18:52:06 Java开发

“从内部类内部访问变量需要声明为final".错误

尝试在内部类内部使用一个类的本地成员时遇到此错误. 我知道将其声明为final将解决此问题,但我读到Java 8应该自动处理它,因为我将Intellij与Java 8一起使用,但它仍然无法编译. 还有其他方法可以在不将其声明为final的情况下进行修复吗? 谢谢. 解决方案 我知道将其声明为final将解决此问题,但我读到Java 8应该自动处理它. 如果变量有效地是 final ..
发布时间:2020-11-06 18:52:03 Java开发

Java:startingPath为"public static final".例外

[已更新,对更改感到抱歉,但现在是真正的问题] 我不能在其中包括try-catch-loop来获取方法getCanonicalPath()的异常.我试图通过方法来更早地解决问题,然后在其中声明值.问题是它是最终版本,我无法更改.那么如何将startingPath作为"public static final". $ cat StartingPath.java import java.util ..
发布时间:2020-11-06 18:51:59 Java开发

局部变量需要声明为final

我收到错误“从内部类内部访问局部变量框;需要声明为final".看起来不错,但是我并不真正认为这是最好的解决方案,所以我希望也许有人可以帮助我.这是我的代码: public void showPublisherBox(JComboBox box) { if (publisherBox == null) { publisherBox = new AddPublisher ..
发布时间:2020-11-06 18:51:51 Java开发

为什么所有匿名类都隐式为final?

根据JLS: 15.9.5匿名类声明匿名类声明是由类实例创建表达式自动派生的. 编译器. 匿名类从不抽象(第8.1.1.1节).匿名课程是 始终是内部类(第8.1.3节);它永远不是静态的(第8.1.1节,第8.5.2节). 匿名类始终是隐式最终的(§8.1.1.2). 这似乎是一个特定的设计决定,所以很可能有一定的历史. 如果我选择上这样的课: SomeType f ..
发布时间:2020-11-06 18:51:49 Java开发

为什么是“这个"? Java中的关键字final?

似乎几乎没有人意识到这一点,但是Java中的"this reference"是最终的.在正常的编程天中,我认为我可以通过在自己的类中重新定义此引用来重新定义整个实例: public void method() { this = new MyObject("arg1", arg2, arg3); //it throws a compile error } 为什么这个引用在Java中 ..
发布时间:2020-11-06 18:50:43 Java开发