草庐IT

Final-Metaverse-Fantasy

全部标签

java - 为什么不应该将所有函数参数都声明为 final?

好的,所以我明白了为什么我们应该从thisquestion声明一个参数为final,但我不明白为什么我们不应该...由于Java总是使用按值传递,这意味着我们不能通过给定的参数返回一个新值,我们只能覆盖它,并因此使参数无用,因为我们不使用传递的值。..Java中非final方法参数的唯一好处是您不必创建参数类型的局部变量吗?附言这个问题是由PMD的MethodArgumentCouldBeFinal规则触发的 最佳答案 我只能想到2个不参数final的原因:如果您需要在某些极端情况下覆盖参数的值(例如,如果参数为null等,则设置默

java - 从4.3.11.Final版本切换到5.0.1.Final导致编译报错

我正在尝试升级我的Hibernate版本org.hibernatehibernate-core4.3.11.Final到org.hibernatehibernate-core5.0.1.Final不幸的是,编译时出现以下错误。TestDao.java:[5,25]cannotfindsymbol[ERROR]symbol:classTransactional[ERROR]location:packagejavax.transaction我已经为此苦苦挣扎了一个多小时。我已经尝试添加包spring-tx但它没有帮助。org.springframeworkspring-tx4.2.1.RE

java - "private final Object"锁在java多线程中有什么用?

Java多线程中“privatefinalObject”锁定的用途是什么?就我的理解而言,我认为要使一个类成为线程安全的,我们应该在我们将所有方法标记为同步的地方使用内部锁定,然后使用“this”将它们锁定在对象的监视器上?或者我们可以用方法内部的私有(private)最终对象锁替换在类的“this”上标记为同步的方法,以锁定通用对象锁以使其线程安全?例如使用内部锁定的代码:publicclassCounter{//Locksontheobject'smonitorpublicsynchronizedvoidchangeValue(){//...}我们可以用下面的外部锁替换上面的代码:

java - createCriteria 在没有 Activity 事务的情况下无效(Struts 2.3.15、Spring 3.2.4、Hibernate 4.2.5 Final)

任何人/导师/大师都可以帮我解决这个问题吗?我被困了超过2天通过注释的Java代码我在中收到此错误createCriteriaisnotvalidwithoutactivetransactionStruts2.3.15&Spring3.2.4&Hibernate4.2.5Final请查看详细错误信息如下:StrutsProblemReportStrutshasdetectedanunhandedexception:Messages:createCriteriaisnotvalidwithoutactivetransactionFile:org/hibernate/context/int

Java8 Effectively Final compile time error on non final variable

我正在尝试将java8forEach循环中的boolean变量更改为非最终的true。但我收到以下错误:在封闭范围内定义的局部变量必须是最终的或实际上是最终的。如何解决这个错误?代码:booleanrequired=false;这是我在函数中创建的变量。现在当我试图改变它时:map.forEach((key,value)->{System.out.println("Key:"+key+"Value:"+value);required=true;});我收到错误:在封闭范围内定义的局部变量必须是最终的或实际上是最终的。为什么会出现这个错误,如何解决? 最佳答案

JDK9或者以上版本出现Unable to make field private final byte[] java.lang.String.value accessible异常

1.原因        这个问题是由于Java9中的模块化导致的。为了提高Java的安全性,Java9引入了模块系统,该系统可以控制不同模块之间的访问权限。模块系统将Java分成了若干个可以独立部署和运行的模块,使得Java应用可以更快地启动并更好地利用硬件资源。2.解决方案①编辑配置②编辑VMoptions(如果没有使用快捷键alt+v)③配置内容--add-opensjava.base/java.lang=ALL-UNNAMED--add-opensjava.base/java.lang.reflect=ALL-UNNAMED--add-opensjava.base/java.lang.i

java - hibernate 困惑。 ga、GA 和 Final Releases 之间有什么区别?兼容性?存储库?

谁能解释一下:1.ga、GA和FinalHibernate版本之间的区别?2.我应该使用maven存储库还是jbossnexus存储库?3.为什么最新的兼容性矩阵(http://community.jboss.org/wiki/HibernateCompatibilityMatrix)没有列出任何高于3.2.6GA的版本?我使用的是以下版本,我正在努力弄清楚是否应该升级:org.hibernatehibernate3.2.6.gaorg.hibernatehibernate-annotations3.3.0.gaorg.hibernatehibernate-commons-annota

java - 原始类型的 transient final 和 transient final 包装类型之间的区别

transientfinalint和transientfinalInteger有什么不同。使用int:transientfinalinta=10;序列化前:a=10序列化后:a=10使用整数:transientfinalIntegera=10;序列化前:a=10序列化后:a=null完整代码:publicclassAppimplementsSerializable{transientfinalIntegertransientFinal=10;publicstaticvoidmain(String[]args){try{ObjectOutputStreamo=newObjectOutpu

java - 字节码中丢失变量 'final' 修饰符?

分析这个简单类的字节码后,我得出的结论是编译器不会保留有关局部变量为final的任何信息。不过这看起来很奇怪,因为我相信HotSpot编译器实际上可以使用这些信息来进行优化。代码:publicstaticvoidmain(String[]args){finalinti=10;System.out.println(i);}字节码:publicstaticvoidmain(java.lang.String[]);descriptor:([Ljava/lang/String;)Vflags:ACC_PUBLIC,ACC_STATICCode:stack=2,locals=2,args_siz

java - 为什么 StringBuilder 是 final - 而不是拥有所有 final 方法?

这样做的动机是我对earlierquestiononStringBuilderbest-practices的回答(“一厢情愿”).如果StringBuilder是可扩展的,那么特定领域的子类可以扩展其流畅的接口(interface),这将加强代码,其中StringBuilder被传递给许多构建更大字符串的部分的方法。我正在考虑向Guava人员提出一些建议-也许是StringBuilder委托(delegate)。与仅具有final方法相反,StringBuilder是final的还有什么其他目的? 最佳答案 如果所有方法都是最终的,