这是我的问题 - 我正在寻找(如果它甚至存在)枚举相当于ArrayList.contains();.
这是我的代码问题的示例:
enum choices {a1, a2, b1, b2};
if(choices.???(a1)}{
//do this
}
Run Code Online (Sandbox Code Playgroud)
现在,我意识到一个ArrayList的Strings会在这里更好的路线,但我通过一个开关/箱其他地方运行我的枚举的内容.因此我的问题.
假设不存在这样的事情,我怎么能去做呢?
我在我正在处理的代码库中遇到以下代码:
public final class ConfigurationService {
private static final ConfigurationService INSTANCE = new ConfigurationService();
private List providers;
private ConfigurationService() {
providers = new ArrayList();
}
public static void addProvider(ConfigurationProvider provider) {
INSTANCE.providers.add(provider);
}
...
Run Code Online (Sandbox Code Playgroud)
INSTANCE被宣布为final.为什么可以添加对象INSTANCE?不应该使final的使用无效.(它没有).
我假设答案必须用指针和内存做一些事情,但我想肯定知道.
我是单元测试和Junit的新手.我知道Junit的基础知识.我刚刚开始学习EasyMock框架.
我无法理解replay()方法的用法.
有人可以提供一些信息吗?
我理解EasyMock.expect()和EasyMock.verify()的用户.
该getRGB()方法返回单个int.如何将红色,绿色和蓝色单独作为0到255之间的值?
我有195个ifs的方法。这是一个简短的版本:
private BigDecimal calculateTax(String country, BigDecimal amount) throws Exception {
if(country.equals("POLAND")){
return new BigDecimal(0.23).multiply(amount);
}
else if(country.equals("AUSTRIA")) {
return new BigDecimal(0.20).multiply(amount);
}
else if(country.equals("CYPRUS")) {
return new BigDecimal(0.19).multiply(amount);
}
else {
throw new Exception("Country not supported");
}
}
Run Code Online (Sandbox Code Playgroud)
我可以将ifs更改为switch:
private BigDecimal calculateTax(String country, BigDecimal amount) throws Exception {
switch (country) {
case "POLAND":
return new BigDecimal(0.23).multiply(amount);
case "AUSTRIA":
return new BigDecimal(0.20).multiply(amount);
case "CYPRUS":
return new BigDecimal(0.19).multiply(amount);
default:
throw new Exception("Country not supported");
}
}
Run Code Online (Sandbox Code Playgroud)
但是195个案例仍然很长。如何提高该方法的可读性和长度?在这种情况下哪种模式最好?
有一种方法:
private String myMethod(String gender)
{
String newString = "";
if(gender.equals("a"))
newString = internal.getValue();
else
newString = external.getValue();
return newString;
}
Run Code Online (Sandbox Code Playgroud)
我重构了所有内容,但有一个小的更改:
String newString;而不是:String newString = "";
这样重构可以改善代码吗?我知道那String是null当我们不初始化它的时候,但是在这个例子中,它总是有a if或from的值else。这个重构会改变什么吗?
我目前正在使用Gradle编写一个用Java 8编写的Spring Boot应用程序.我正在寻找的是从命令行运行Jar时作为参数传递服务器端口.
例如:
java -jar myApplication.jar --port=8888:这使用端口运行我的Spring启动应用程序 8888java -jar myApplication.jar:由于没有端口号作为参数传递,弹出启动应用程序应该在默认端口号上运行(比方说8080)谁能帮我这个 ?
我想获取一些有关正在运行的查询的信息来分析它。在 PgAdmin 3 中,我至少可以使用“解释查询”,而在 DBeaver 中,单击“解释执行计划”后,没有任何反应。
如何获取DBeaver中查询的任何信息?
@编辑
抱歉,如果这个问题看起来太宽泛。我不期望解释如何分析查询,我只是想知道是否可以在 DBeaver 中打开分析器以及如何操作。
我最近改用IntelliJ.我手动导入了一些项目,我想我没做错.它们都应该是java模块,但它们只是常规目录文件夹.有没有办法将它们转换为java模块,以便我可以运行程序或者我必须手动重新创建新模块?