草庐IT

non-final

全部标签

java - 断言集合 "Contains at least one non-null element"

我想验证一个集合是否包含至少一个非空元素。我试过is(not(empty())),但是这在下面的测试中通过了。importorg.junit.Test;importjava.util.ArrayList;importjava.util.Collection;importstaticorg.hamcrest.CoreMatchers.is;importstaticorg.hamcrest.MatcherAssert.assertThat;importstaticorg.hamcrest.Matchers.empty;importstaticorg.hamcrest.Matchers.no

java - finally block 和线程挂起

我注意到,在Java中,如果当前线程在tryblock中暂停,则相应的finallyblock不会被执行,例如Semaphorelock=newSemaphore(0);try{lock.acquire();}finally{//dosomething}这个观察是否可以推广到线程挂起,即Oracle文档所说的它只能用于绕过return、break和是真的吗继续?甲骨文文档。说:Butfinallyisusefulformorethanjustexceptionhandling—itallowstheprogrammertoavoidhavingcleanupcodeaccidental

java - 如何避免 finally block 中的 throw 子句

我使用SonarQube来提高代码质量。我遇到了一个与异常处理相关的问题,它说从finallyblock中删除throw子句。}catch(Exceptione){thrownewMyException("requestfailed:",e);}finally{try{httpClient.close();}catch(IOExceptione){thrownewMyException("failedtocloseserverconn:",e);}}根据我的理解,上面的代码看起来不错。如果我在finally中删除throw子句并抑制异常,则此方法的调用者将无法知道服务器的状态。我不确定

java - 在 java 中使用 final 关键字从 int 到 byte 的类型转换问题

publicstaticvoidmain(String[]args){finalinta=15;byteb=a;System.out.println(a);System.out.println(b);}在上面的代码中,当我从int转换为byte时,它​​没有给出编译时错误,但是当我从long转换为int时,它给出了编译时错误,为什么?publicstaticvoidmain(String[]args){finallonga=15;intb=a;System.out.println(a);System.out.println(b);} 最佳答案

Java try-finally 竞争条件?

很多Java资源使用示例如下所示:Resourcer=openResource();try{//useresource}finally{r.close();}r的声明必须在try子句之外才能在finally子句中可见,但这也使得看起来可能存在竞争条件:如果在openResource()调用和进入try子句之间出现线程中断怎么办?这是否意味着资源不会在那种情况下实际上被关闭?或者Java是否保证try-finally会“完全”覆盖r,尽管语法看起来不会?或者我必须写:Resourcer=null;try{r=openResource();//useresource}finally{if(

java - 解释警告 : non-varargs call of varargs method with inexact argument type for last parameter

这个问题在这里已经有了答案:WhydoIgetacompilationwarninghere(varargsmethodcallinJava)(5个答案)关闭6年前。这是我收到警告的示例代码。StringlsSQL=foMetaQuery.getSQL();StringlsNewSQL=replace(lsSQL,"''{","''{");lsNewSQL=replace(lsNewSQL,"}''","}''");lsNewSQL=replace(lsNewSQL,"}","}");lsNewSQL=MessageFormat.format(lsNewSQL,foSubstituti

java - 为什么在 Java 中初始化为 String.toString() 的 'final String' 不被视为常量

这个问题在这里已经有了答案:Javaswitchstatement:Constantexpressionrequired,butitISconstant(14个答案)CompileTimeConstantUsageinSwitchCaseJava(6个答案)关闭6年前。我用Java编写了以下代码,运行良好:publicclasstest{publicstaticvoidmain(String[]args){finalStrings1="s1";finalStrings2="s2";Strings="s1";switch(s){cases1:System.out.println("s1"

java - Netbeans 警告 : Exporting non-public type through public API

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭9年前。Improvethisquestion我正在创建一个Slick2D游戏。现在,我正在创建一个Video类,其中包含内部类(FrameSize、FPS、FullScreen..)。所以我有一个OOD想法以一种方式进行包装,就像我们调用System.out.println()一样。这意味着我将拥有他的内部类的公共(public)视频类和公共(public)静态实例,但是netbeansIDE向我提示“通过公共(public)API导出非公共(pu

java - 为什么在覆盖 finalize() 方法时首选调用 super.finalize()?

我收到SonarQube错误:“强烈建议在此方法实现结束时调用super.finalize(),以防父实现也必须释放一些系统资源。”但我发现Object类没有实现finalize方法。protectedvoidfinalize()throwsThrowable{}那么为什么需要调用super.finalize()呢? 最佳答案 这不是必须的,它是应该遵循的finalizer写成语。如果在未来的任何时候,您重构了您的代码并且您的类扩展了一些可能具有finalize方法的其他类,这种做法将防止出现奇怪的错误。成语是try{//Dowha

java - 你在子类中调用 super.finalize() 吗?

我(在某处)读到,当子类被垃圾回收时,不能保证调用父类的finalize(),这是否意味着大多数开发人员会覆盖finalize()在子类中调用super.finalize()? 最佳答案 Finalize不会自动为父类(superclass)调用。因此,如果您重写finalize,确保父类(superclass)得到清理的正确方法是protectedvoidfinalize(){try{//dosubclasscleanup}finally{super.finalize();}}请参阅这篇引用文章http://www.ibm.com