
在Java中使用“final”修饰符
在Java中,有一种做法是声明每个变量(局部变量或类),如果参数确实存在,则声明参数final。尽管这使代码更加冗长,但是这有助于简化代码的读取/抓取,并且由于意图被明确标记,因此还可以防止错误。您对此有何想法,您会怎么做?回答:我认为这都与良好的编码风格有关。当然,你可以编...
2024-01-10
Java中final字段的继承?
当超类具有标记为final的字段但子类覆盖(隐藏?)此字段时,会发生什么?“最终”并没有阻止它,不是吗?我正在处理的特定示例是Building类,从中继承了各种建筑物。除其他事项外,每种类型的成本对于每个子类都应是最终成本,但是每种类型的建筑物应具有自己的成本。编辑:从那以后,我意...
2024-01-10
在Java中将对象声明为final
有人可以澄清以下代码的重要性吗?class A{ int i = 10; public void setI(int b) { i = b; } public int getI() { return i; }}class Test{ public static void main(String args[]) throws Throwable { final A ob = new A(); ...
2024-01-10
为什么在Java中将String类声明为final?
当我得知该类java.lang.String在Java中被声明为final时,我想知道为什么会这样。那时我没有找到任何答案,但是这篇文章:如何在Java中创建String类的副本?让我想起了我的疑问。当然,String提供了我所需要的所有功能,而且我从未想过需要扩展String类的任何操作,但是您仍然永远不会知道有人可能需要什...
2024-01-10
为什么Thread不是抽象类,而start()不是final?
为什么将Thread类实现为常规类而不是将 run()方法实现为 类。会不会带来任何问题?或以这种方式有什么用吗?而且,该Thread.start()方法应该是一种非常特定的方法, (如果我没记错的话)。因此,我想该final关键字比其他任何方法都更适合此操作。但是我可以重写此方法并根据需要使用它,public cla...
2024-01-10
Java什么时候应该对方法参数和局部变量使用final?
我发现了一些参考(例如),它们建议final尽可能多地使用它,我想知道这有多重要。这主要是在方法参数和局部变量的上下文中,而不是最终方法或类。对于常量,这很明显。一方面,编译器可以进行一些优化,使程序员的意图更加清晰。另一方面,它增加了冗长性,并且优化可能微不足道。我需要...
2024-01-10
为什么在Java的方法参数上使用关键字“ final”?
当在方法参数上使用final关键字时,我无法理解该关键字在哪里真正方便。如果我们排除使用匿名类,可读性和意图声明,那么对我来说几乎毫无用处。强制某些数据保持不变并不像看起来那样强大。如果参数是原始参数,则它将无效,因为参数作为值传递给方法,并且在范围之外进行更改将无效。 ...
2024-01-10
用Java将final声明为==的字符串进行比较
我有一个关于Java字符串的简单问题。以下简单代码段仅连接两个字符串,然后将它们与进行比较==。String str1="str";String str2="ing";String concat=str1+str2;System.out.println(concat=="string");比较表达式concat==”string”返回false那么明显(I明白之间的差值equals()和==)。当这样声明这两个字符串时final,final String str...
2024-01-10
为什么我们必须对Data Jpa中的查询使用@Modifying批注
例如,我的CRUD界面中有一个方法可以从数据库中删除用户:public interface CrudUserRepository extends JpaRepository<User, Integer> { @Transactional @Modifying @Query("DELETE FROM User u WHERE u.id=:id") int delete(@Param("id") int id, @Param("userId") int userId);}此方法仅适用于注...
2024-01-10
在Java中将final用于变量会改善垃圾回收吗?
今天,我和我的同事们讨论了如何final在Java中使用关键字来改善垃圾回收。例如,如果您编写如下方法:public Double doCalc(final Double value){ final Double maxWeight = 1000.0; final Double totalWeight = maxWeight * value; return totalWeight; }final在方法退出后,在方法中声明变量将有助于垃圾回收从方法中未使用的变量...
2024-01-10
在Java中使用final关键字是否可以提高性能?
在Java中,我们看到了很多final可以使用该关键字但很少使用的地方。例如:String str = "abc";System.out.println(str);在上述情况下,str可以,final但是通常不这样做。当一个方法永远不会被覆盖时,我们可以使用final关键字。类似地,对于不会被继承的类。在任何或所有这些情况下使用final关键字是否真的...
2024-01-10
为什么所有匿名类都隐式为final?
根据JLS:15.9.5匿名类声明编译器会自动从类实例创建表达式派生匿名类声明。匿名类从不抽象(第8.1.1.1节)。匿名类始终是内部类(第8.1.3节);它永远不是静态的(第8.1.1节,第8.5.2节)。 。这似乎是一个特定的设计决定,所以它有一定的历史。如果我选择上这样的课:SomeType foo = new SomeType() { ...
2024-01-10
从lambda表达式引用的局部变量必须是final或有效的final
我有一个JavaFX8程序(用于跨平台的JavaFXPorts),可以完成我想做的事情,但只差了一步。该程序读取一个文本文件,对行进行计数以建立一个随机范围,从该范围中选择一个随机数,然后读取该行以进行显示。The error is: local variables referenced from a lambda expression must be final or effectively final button.setOnA...
2024-01-10
通过反射或其他方式覆盖Java final方法?
尝试编写测试用例时会出现此问题。Foo是框架库中的类,我没有源访问权限。public class Foo{ public final Object getX(){ ... }}我的申请将public class Bar extends Foo{ public int process(){ Object value = getX(); ... }}由于其他依赖关系,我无法创建Foo对象,因此单元测试用例无法初始化。BarTest会抛出一个null...
2024-01-10
java无法在用其他方法定义的内部类中引用非final变量?
我需要更改几个变量的值,因为它们在计时器中运行了几次。我需要通过计时器在每次迭代中不断更新值。我无法将值设置为final,因为这将阻止我更新值,但是我遇到了在下面的的错误:无法引用用其他方法定义的内部类内部的非最终变量public static void main(String args[]) { int period = 2000; int delay = ...
2024-01-10
为什么在Java中,对象成员变量不能同时为final和volatile?
如果在一个类中我有一个ConcurrentHashMap实例,该实例将被多个线程修改并读取,则可以这样定义:public class My Class { private volatile ConcurrentHashMap<String,String> myMap = new ConcurrentHashMap<String,String>();...}添加final到myMap字段会导致错误,提示我只能使用final或volatile。为什么不能两者兼而有之?回答:volatil...
2024-01-10
Javalambda表达式中使用的变量应该是final或有效的final
lambda表达式中使用的变量应该是final或有效的final当我尝试使用calTz它时会显示此错误。private TimeZone extractCalendarTimeZoneComponent(Calendar cal, TimeZone calTz) { try { cal.getComponents().getComponents("VTIMEZONE").forEach(component -> { VTimeZone v = (VTimeZone)...
2024-01-10
为什么在匿名类中只能访问final变量?
在这里只能是最终的。为什么?如何在onClick()不保留为私有成员的情况下重新分配方法?private void f(Button b, final int a){ b.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { int b = a*5; } });}单击该如何返回?private void f(But...
2024-01-10
与具有公共静态final字段的类相比,Java枚举有什么优势?
我对C#非常熟悉,但是开始在Java中工作更多。我希望了解到Java中的枚举基本上与C#中的枚举等效,但是显然并非如此。最初,我很高兴得知Java枚举可以包含多条数据,这似乎非常有利(http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html)。但是,从那时起,我发现了很多C#缺少的功能,例如能够轻松地...
2024-01-10
Java“空白的final字段可能尚未初始化”匿名接口与Lambda表达式
我最近遇到了错误消息“空白的最终字段obj可能尚未初始化”。如果您尝试引用可能尚未分配值的字段,通常就是这种情况。示例类:public class Foo { private final Object obj; public Foo() { obj.toString(); // error (1) obj = new Object(); obj.toString(); // just fine (2) }}我使用Ec...
2024-01-10
Java:封闭范围中定义的局部变量mi必须是final或有效的final
我收到错误提示,就像在主题中一样,请问如何修复…错误在menuItem循环中,在这里我尝试将textArea前景颜色设置为从menuItem中选择的一种:(colors[mi]) String[] colors = { "blue", "yellow", "orange", "red", "white", "black", "green", ...
2024-01-10
Java 私有final静态属性vs私有final属性
在Java中,两者之间有什么区别?private final static int NUMBER = 10;和private final int NUMBER = 10;都是private和final,不同之处在于static属性。有什么更好的?又为什么呢?回答:通常,static是指“与类型本身相关联,而不是与类型实例相关联”。这意味着你可以在没有创建类型实例的情况下引用静态变量,...
2024-01-10
Java 方法参数中的final关键字
我经常遇到如下所示的方法:public void foo(final String a, final int[] b, final Object1 c){}如果在未传递最终参数的情况下调用此方法会发生什么。例如,可以将稍后更改的Object1(因此未声明为final)传递给此方法回答:Java总是在将参数发送给方法之前先对其进行复制。这意味着最终的调用代码没有任何区别...
2024-01-10
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
在Java中,我们使用final带有变量的关键字来指定其值不被更改。但是我看到你可以在类的构造函数/方法中更改值。同样,如果变量是static,则为编译错误。这是代码:import java.util.ArrayList;import java.util.List;class Test { private final List foo; public Test() { foo = new ArrayList(); foo.add("foo"); // Modification...
2024-01-10
final cut pro是什么软件
品牌型号:联想拯救者Y9000P系统:Windows 11FinalCutPro是由苹果公司开发的一款专业视频编辑软件,主要用于编辑高清晰度视频、标准视频和数字音频。它提供了广泛的工具和特性,包括多视频和音频轨道、内置特效和过渡、色彩校正、剪切和修剪、以及支持多个摄像机角度编辑等。FinalCutPro可以在MacOS系统上运行,并且被广泛用于电影、电视节目、音乐视频等各种媒体制作领域。F...
2024-01-06
无法加载文件或程序集'MySql.Data,版本= 6.3.6.0
我完全不知所措-我仍然什至没有真正理解的地方遇到超级奇怪的问题…我正在运行Entity Framework 4.1,MySql 5.xx和MySqlConnector为6.4.4版-一切正常但是在本地,只要我上传到服务器,就会收到:Could not load file or assembly 'MySql.Data, Version=6.3.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies. ...
2024-01-10
