这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Hideinputoncommandline我正在制作一个密码安全检查程序,我的问题很奇怪,因为我的程序运行得很好。我想知道是否有任何方法可以使输入到控制台的文本看起来像在密码字段中一样。即在用户按下返回键之前,输入的单词将显示为“****”。我知道JFrame有一个JPasswordField方法,但我认为这对我仅使用Scanner没有帮助。这是我的代码:importjava.util.Scanner;publicclassSecurityCheckerMain{staticStringenteredPas
对于下面的一段代码,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;}
如果我有一个子类,其中包含我从父类覆盖的方法,并且在非常特殊的情况下我想使用原始方法,我该如何调用这些方法? 最佳答案 调用superclassA{intfoo(){return2;}}classBextendsA{booleansomeCondition;publicB(booleanb){someCondition=b;}intfoo(){if(someCondition)returnsuper.foo();return3;}} 关于java-如何从子类调用重写的父类方法?,我们在S
我有一个方法需要一段时间才能完成。我希望我的方法在返回“最终”结果之前返回“初步”结果。我想知道是否可以这样:publicObjectmyMethod(){/*somecomputationhere*/returnfirstResult;/*verylongcomputationhere*/returnfinalResult;}这甚至可能吗?或者您可以建议某种解决方法吗? 最佳答案 您可以将长时间运行的任务放在执行器上(它将使用线程池异步执行任务)并返回Future您可以稍后使用它来获得答案。当您在未来调用get时,它会阻塞直到任务
假设,我们有switch语句,它完全涵盖了枚举参数的所有可能情况,并且也有null检查,不会因为"Missingreturnstatement"而被编译。enumFoo{ONE,TWO}intfooToInt(Foofoo){if(foo==null){thrownewNullPointerException();}switch(foo){caseONE:return1;caseTWO:return2;}}我知道,从default案例或枚举之后抛出异常,或者访问枚举元素而不是switch将解决问题。但我不明白这种行为的技术原因:显然,没有可能的执行分支不会导致return或throw。
我在System.out.println的分号后面多加了一个分号:System.out.println();;这对Java编译器来说是合法的,所以我检查了其他语句,它们也都是合法的。所以当我搜索并找到这些链接时:WhydoesJavanotshowanerrorfordoublesemicolonattheendofastatement?Compilerdoesn'tcomplainwhenIendedalinewithtwosemicolons.Why?Whenwouldyouputasemicolonafteramethodclosingbrace?Whydoescodewiths
考虑以下代码privateintmeth(){try{return1;}catch(Exceptionex){return2;}finally{return3;}}编译上述代码时,“Exception”被视为未经检查的异常。那就是“unreachablecatchblockExceptionisneverthrowintryblock”编译错误不会发生。考虑到我正在声明我自己的异常,classMyExceptionextendsException{}并在代码中使用它privateintmeth(){try{return1;}catch(MyExceptionme){return2;}f
我正在学习Java。我试图运行代码,但出现此错误:returntypeisincompatible。显示错误的部分代码。classA{publicvoideat(){}}classBextendsA{publicbooleaneat(){}}为什么会这样? 最佳答案 这是因为我们不能在具有相同名称但返回类型不同的类中拥有两个方法。子类不能声明一个与父类中已经存在的方法具有相同名称但返回类型不同的方法。但是,子类可以声明一个与父类(superclass)具有相同签名的方法。我们称之为“覆盖”。你需要有这个,classA{publicv
我在程序开始时打开一个到FTP服务器的连接。在我对服务器执行操作之前,我想检查连接是否已成功建立。最简单快速的方式,所以如果连接断开,我会尝试重新连接。我用这段代码来做到这一点:privatebooleancheckConnection(){try{booleansuccess=ftpClient.login(user_name,password);if(success)returntrue;elsereturnfalse;}}但是这个方法在连接关闭时会抛出一个NullPointer异常。我可以检查与ftpClient.connect(server,port);的连接,但这就像重新尝试
对于Cube类,我试图消除错误:Cube.java:12:error:constructorRectangleinclassRectanglecannotbeappliedtogiventypes;super(x,y);^required:int,int,double,doublefound:int,int.......我知道Cube的每个面都是一个Rectangle,其长度和宽度需要与Cube的边相同,但我不确定需要将什么传递给Rectangle构造函数以使其长度和宽度为与立方体的侧面相同。还尝试计算体积,即矩形面积乘以立方体边长这是立方体类//-------------------