草庐IT

task-switching

全部标签

Java - switch case,多个case调用同一个函数

由于我有多个应该以相同方式处理的String案例,我尝试了:switch(str){//compilererrorcase"apple","orange","pieapple":handleFruit();break;}但是我得到一个编译器错误。我是否必须在Java中逐个调用相同的函数:switch(str){case"apple":handleFruit();break;//repeatabovethingforeachfruit...}没有更简单的样式吗? 最佳答案 你必须像这样为每个字符串使用case关键字:switch(st

C# 异步陷阱:Task.Run

在C#中,Task.Run是一个非常方便的方法,用于在后台线程上异步执行代码。它常常用于实现异步编程模型,以提高应用程序的响应性和性能。然而,不正确或不当地使用Task.Run可能会引入一些陷阱,导致性能下降、资源浪费甚至程序崩溃。本文将讨论Task.Run的正确使用方式以及潜在的风险。一、Task.Run的正确使用(1)CPU密集型任务:Task.Run最适合用于执行CPU密集型任务,这些任务会占用大量的CPU资源,但不会阻塞UI线程或等待I/O操作。例如,复杂的计算、数据处理或算法实现等。Task.Run(()=>{//执行CPU密集型任务intresult=ComplexCalculat

java - 在 switch-case 语句中使用枚举的序数值

对于我的项目,我使用枚举,我需要实现switch-case语句,其中检查特定枚举值的序号,如下所示:switch(variable){caseMyEnum.A.ordinal():returntrue;caseMyEnum.B.ordinal():returntrue;default:returnfalse;}注意:返回值只是一个例子。不幸的是,Eclipse(我使用的是1.6JDK)给出了我的编译错误“case表达式必须是常量表达式”。我应该怎么办?除了静态查找表,还有其他方法吗,在此处描述:Convertfromenumordinaltoenumtype?

java - Java 中 Switch Case 的替代方案

除了看起来不太好的ifelse之外,是否有任何其他方法可以在Java中实现switchcase。一组值组合在一起,根据选择执行相应的方法。 最佳答案 如果您的代码周围有大量switch/case语句,它们会让您发疯。您可以选择重构:Replaceconditionalwithpolymorphism.假设您有一个用于将信息保存到不同设备的软件:定义了4个持久性操作:获取、保存、删除、更新,其中可以通过N种持久化机制(平面文件、网络、RDBMS、XML等)来实现。你的代码必须支持它们,所以在4个不同的地方你有这个:之前classYou

java - 用 java lambdas 重构一个 switch case

我正在尝试重构遗留代码,在这种情况下,我有一大块switchcase来决定要执行的命令switch(operation)caseaddition:returnadd(inta,Stringb,Stringc);casemultiply:returnmultiply(inta,intb);casesubstract:returnsubstract(inta,intb);方法1:使用多态性publicinterfaceOperation{voidperformOperation(inta,intb);}然后用可用的实现填充映射:Mapactions=newHashMap();actions

java Callable FutureTask Excecuter : How to listen to finished task

我对执行者服务还很陌生。喜欢自己做所有事情,但我认为是时候相信这些服务了。我想通过Executer传递一个Runnable。执行者将其包装在FutureTask中并将其交还给我。现在我调用polldone()方法。但我希望在done()方法返回true时得到通知。有一个get()方法会阻塞直到Runnable完成,但是之后我需要为每个作业添加一个额外的线程,只是为了查看它何时完成.我可以给我的执行者一些额外的Callable以获得任务完成的通知吗?到这里怎么走?我可以在run方法的末尾添加一些代码,但是done()可能仍然是false... 最佳答案

java - 用于 Java 中 switch 的 McCabe Cyclomatic Complexity

我正在使用13个case的switch语句,每个case只有一行返回值。McCabe将其涂成红色。有没有更简单的方法来编写一个大的switch语句?阅读起来似乎并不复杂,但我不喜欢默认设置变成红色。如果其他人在我的代码上使用相同的工具并看到红色的东西,他们可能会认为我很愚蠢:-)编辑:我将不同的SQL类型映射到我自己的更抽象的类型,因此减少了类型的总数。caseTypes.TIME:returnAbstractDataType.TIME;caseTypes.TIMESTAMP:returnAbstractDataType.TIME;caseTypes.DATE:returnAbstra

java - Switch 语句给出不兼容的类型错误

我正在尝试编译,但出现此错误:enigma/Rotor.java:30:incompatibletypesfound:java.lang.Stringrequired:intswitch(name){1error为什么会出现此错误?我如何解决它?它在包装中,我似乎无法弄清楚。这是代码:Stringlabel;Rotor(){;}Rotor(Stringname){switch(name){case"B":conversion_chart=B;break;case"C":conversion_chart=C;break;case"I":conversion_chart=I;notch=N

Java switch语句处理两个变量?

我正在寻找一种使用单个开关处理两个字符串的方法,我认为这在Java中是不可能的。这里是一些伪代码,我想只用一个开关来实现。ints1Value=0;ints2Value=0;Strings1="a";Strings2="g";switch(s1||s2){case"a":s1value=0;s2value=0;break;case"b":s1value=1;s2value=1;break;case"c":s1value=2;s2value=2;break;case"d":s1value=3;s2value=3;break;case"e":s1value=4;s2value=4;brea

java - 使用 switch 语句将字符串与枚举进行比较

我正在用Java制作(我自己的)轮盘赌,玩家可以下注的一种类型是选择将要滚动的颜色。(偶数为黑色,奇数为红色)。有没有一种方法可以使用switch语句将字符串与枚举进行比较?privateenumcolors{red,black};privateStringcolorGuess;privatebooleancolorVerify=false;publicvoidgetColorGuess(){do{Scannerin=newScanner(System.in);colorGuess=in.nextLine();switch(colors){casered:colorVerify=tru