草庐IT

RETURN_GENERATED_KEYS

全部标签

java - finally 添加 return 隐藏异常

我有以下代码publicstaticvoidnocatch(){try{thrownewException();}finally{}}哪个给出了错误Exceptioninthread"main"java.lang.Error:Unresolvedcompilationproblem:UnhandledexceptiontypeCustomException这是预期的,但是在finallyblock中添加一个return语句会使错误消失publicstaticvoidnocatch(){try{thrownewException();}finally{return;//makesthee

java - Java 编译器上下文中的 'generated source files' 是什么?

关于javac的Oracle文档说-s开关用于指定放置生成的源文件的目录。那些“生成的源文件”是什么?为什么需要它们?我一直认为源文件是由人为软件“生成”的... 最佳答案 这似乎与AnnotationProcessing有关javac的一部分。显然,您可以在编译人工生成的源代码时使用注释处理器,这些处理器可能会生成源文件作为处理某些注释的一部分:Ifanyprocessorsgeneratenewsourcefiles,thenanotherroundofannotationprocessingoccurs:Anynewlygen

java - 为什么/**[newline] 并不总是在Eclipse 中插入包含@param 和@return 的Javadoc 模板?

我在Eclipse中记录代码,并且一直在使用/**后跟Enter来插入Javadoc模板。然而,出于某种原因,这并不总是有效,它会创建用于编写评论的模板,但不会自动插入@param和@return文本。如果我将完全相同的方法复制到另一个类,它将插入完整的模板。如果有人能告诉我为什么它在某些情况下不会这样做,那将是一个很大的帮助。 最佳答案 据我所知,这通常发生在Eclipse不确定您要记录哪种方法时。更可靠的方法是选择要为其创建JavaDoc的方法/类等,然后按ALT+SHIFT+J或右键单击类大纲中的方法并单击源->生成元素注释。

java - 在 try 或 catch block 上调用 return 语句或 System.exit

我在面试中被问到以下问题:WhatwillhappenifonecallsareturnstatementorSystem.exitontryorcatchblock?Willfinallyblockexecute?finallyblock是否总是被执行?编辑:在java中尝试以上操作后:finally如果我将return语句放在tryblock或catchblock中,block就会执行,但是如果我调用System.exit形式的try或catch,finallyblock不会运行。虽然我不明白背后的原因。 最佳答案 Whatwi

java - Sonar 圈复杂度规则问题 - 不鼓励使用多个 return 语句

对于下面的一段代码,sonarqube计算的方法圈复杂度为9Stringfoo(){if(cond1)returna;if(cond2)returnb;if(cond3)returnc;if(cond4)returnd;returne;}我按照计算规则理解http://docs.sonarqube.org/display/SONAR/Metrics+-+Complexity9的复杂度是正确的。所以方法的复杂度是=4(if)+4(return)+1(method)=9如果我有一个导出点,可以降低这种复杂性。Stringfoo(){Stringtemp;if(cond1){temp=a;}

java - Protocol Buffer 3 : Enums as keys in a map

枚举不允许用作映射中的键。这里的PaxType是一个枚举,不允许用作键。enumPaxType{ADULT=0;CHILD=1;INFANT=2;}messageFlightData{mapfareType=1;} 最佳答案 这是不允许的,因为它不能很好地与proto3开放枚举语义兼容。例如,在Java中,如果您有一个Map,则键只能是定义的值之一。如果您碰巧从远程客户端/服务器接收到不在定义值集中的枚举键值,则无法将其放入Map中。此限制迫使我们要么删除具有未知枚举键的映射条目(这违反了proto3开放枚举语义),要么禁止枚举作为

java - 在 Java 中完全切换枚举会产生 "Missing return statement"错误

假设,我们有switch语句,它完全涵盖了枚举参数的所有可能情况,并且也有null检查,不会因为"Missingreturnstatement"而被编译。enumFoo{ONE,TWO}intfooToInt(Foofoo){if(foo==null){thrownewNullPointerException();}switch(foo){caseONE:return1;caseTWO:return2;}}我知道,从default案例或枚举之后抛出异常,或者访问枚举元素而不是switch将解决问题。但我不明白这种行为的技术原因:显然,没有可能的执行分支不会导致return或throw。

java - 为什么 return 语句后不允许有额外的分号,而其他语句允许使用分号?

我在System.out.println的分号后面多加了一个分号:System.out.println();;这对Java编译器来说是合法的,所以我检查了其他语句,它们也都是合法的。所以当我搜索并找到这些链接时:WhydoesJavanotshowanerrorfordoublesemicolonattheendofastatement?Compilerdoesn'tcomplainwhenIendedalinewithtwosemicolons.Why?Whenwouldyouputasemicolonafteramethodclosingbrace?Whydoescodewiths

Java - 错误 : return type is incompatible

我正在学习Java。我试图运行代码,但出现此错误:returntypeisincompatible。显示错误的部分代码。classA{publicvoideat(){}}classBextendsA{publicbooleaneat(){}}为什么会这样? 最佳答案 这是因为我们不能在具有相同名称但返回类型不同的类中拥有两个方法。子类不能声明一个与父类中已经存在的方法具有相同名称但返回类型不同的方法。但是,子类可以声明一个与父类(superclass)具有相同签名的方法。我们称之为“覆盖”。你需要有这个,classA{publicv

java - `return value' 来自 Java 中的构造函数异常?

看看下面的代码片段:Aa=nulltry{a=newA();}finally{a.foo();//Whathappensatthispoint?}假设A的构造函数抛出运行时异常。在标记的行,我是否总是保证会得到NullPointerException,或者foo()将在半构造的实例上被调用? 最佳答案 tryblock中的代码包含两个不同的操作:创建一个新的A实例。将新实例分配给名为a的变量。如果第1步抛出异常,第2步将不会执行。因此,您将始终得到一个NullPointerException。