草庐IT

switch-user

全部标签

java - switch 语句在这里是否合适,采用枚举?

今天我用Java制作了一个俄罗斯方block克隆体,当需要实现block生成机制时,我编写了这个采用枚举的switch语句。我被告知要尽可能避免使用switch语句,但我不确定是否可以在这里避免使用switch语句,除非我彻底修改我最初的基于继承的设计选择。为了实现不同类型的block,我决定制作一个名为Block的抽象父类(superclass),并为每种特定类型制作一个子类。我还制作了一个标记block类型的枚举。例如,一个ZBlockextendsBlock对象会将Type.ZBlock枚举分配给它的Type字段变量。privatevoidspawnBlock(Typetype)

java - 在 switch 语句中使用逻辑

我的问题与以下代码有关:publicstaticvoidmain(String[]args){//FindPrimeNumbersfrom0to100inti;for(i=2;i现在,正如我在代码中评论的那样,我试图实现的是通过仅在iPrime=true时执行“while”循环来更快地执行我的程序。50%的数字可以被2整除,因此一旦确定,计算就可以停止。我正在做这个项目作为一本书中初学者“示例”的一部分,实际上我正在尝试尽快计算高达1000000只是为了我自己的“额外学分”......我读到“短路‘与’运算符”&&仅在前半部分为真时才评估语句的后半部分,如果为假,则两者不会相互评估(节

Java servlet 和 IO : Create a file without saving to disk and sending it to the user

我希望可以帮助我解决文件创建/响应问题。我知道如何创建和保存文件。我知道如何通过ServletOutputStream将该文件发送回用户。但我需要的是创建一个文件,而不是将其保存在磁盘上,然后通过ServletOutputStream发送该文件。上面的代码解释了我拥有的部分。任何帮助表示赞赏。提前致谢。//ThisCreatesafile//Stringtext="Thesedaysrunawaylikehorsesoverthehill";Filefile=newFile("MyFile.txt");Writerwriter=newBufferedWriter(newFileWrit

java - 在 Switch 语句中使用整数

出于各种商业原因,我想在我的一个类中保留一些静态ID。它们最初是int但我想将它们更改为Integer这样我就可以对它们进行equals(即MY_ID.equals(..)这避免了NPE)当我将它们更改为Integer时,我的switch语句中出现错误。docs说Integer在Switches中应该没问题。引用[Switch]alsoworkswithenumeratedtypes(discussedinEnumTypes),theStringclass,andafewspecialclassesthatwrapcertainprimitivetypes:Character,Byte

java - 如果 Address 嵌套在 User 中,为什么我必须保留这两个对象?

我试图更好地熟悉JPA,因此我创建了一个非常简单的项目。我有一个用户类和一个地址类。似乎我必须坚持两者,即使我将地址添加到我的用户类?用户:importjavax.persistence.*;importjava.util.HashSet;importjava.util.List;importjava.util.Set;@Entity@Table(name="usr")//@Tableisoptional,but"user"isakeywordinmanySQLvariants@NamedQuery(name="User.findByName",query="selectufromUs

java - 为什么 user.dir 系统属性在 Java 中有效?

我读过的几乎每篇文章都告诉我,在Java中不能有chdir。thisquestion的公认答案说你不能用Java做到这一点。但是,这是我尝试过的一些东西:geo@codebox:~$java-versionjavaversion"1.6.0_14"Java(TM)SERuntimeEnvironment(build1.6.0_14-b08)JavaHotSpot(TM)ClientVM(build14.0-b16,mixedmode,sharing)Here'satestclassI'musing:importjava.io.*;publicclassCh{publicstaticvo

java - 为什么 Java 中的 switch 语句的范围没有限制?

为什么在Java中,变量的作用域限于switchblock而不是caseblock。例如,//Scopelimitedtoaswitchblockswitch(number){case1:Stringresult="...";break;case2:result="...";break;在上面的例子中,result只需要声明一次。如果您声明它两次,那么您会收到一条Duplicatelocalvariable消息。我的问题是:如果number=2,程序如何知道您声明了result?(它不会落入case1并且不会声明变量...或者会吗?)编辑:我可能会让大家感到困惑。我了解如何限制变量的范

Java - 避免静态函数的 switch 语句

检查这段代码-switch(kind){case"green":GreenKind.doSomething();//Staticfunctionbreak;case"white":WhiteKind.doSomething();//Staticfunctionbreak;case"blue":BlueKind.doSomething();//Staticfunctionbreak;case"yellow":YellowKind.doSomething();//Staticfunctionbreak;}有办法避免switch语句吗?因为它闻起来很糟糕。也许是这样的?-kinds.get(

java - 帮助 switch 语句

我对java比较陌生。在switch语句中,是否必须在每个case之后放置一个break语句? 最佳答案 不,您不必这样做。但是,如果省略break语句,则执行switchblock内的所有剩余语句,而不管它们的case值如何测试。有时这会产生不希望的结果,如下面的代码所示:switch(grade){case'A':System.out.println("YougotanA!");//Noticethelackofa'break'statementcase'B':System.out.println("YougotaB!");ca

java - 不同switch case中的变量不能重名?

我正在重构一些代码以使其更易于阅读,但我遇到了一些我觉得很奇怪的事情,我想知道是否有人可以向我解释一下。原代码:if(tokensLeft==3){Stringid=tokens.nextToken();Stringvalue=tokens.nextToken();StringtrailerId=tokens.nextToken();rawListener.binaryInfo(id,Integer.parseInt(value),trailerId,this);}elseif(tokensLeft==2){Stringid=tokens.nextToken();Stringvalue