是否有任何方法具有Java中IF-THEN-ELSE语句的功能,如Oracle/PLSQL中的decode
函数?Java方法具有IF-THEN-ELSE语句的功能
回答
没有,但是你所要求的是这样的:
interface CaseItem<K, V> {
boolean isDefaultCondition();
@NotNull
K conditionValue();
V calculateResult();
}
public <T, V> V decode(@NotNull T input, CaseItem<K, V> caseItems...) {
if (caseItem == null) {
return null;
}
for (CaseItem<K, V> caseItem : caseItems) {
if (input.equals(caseItem.conditionValue()) {
return caseItem.calculateResult();
} else if (caseItem.isDefaultCondition()) {
return caseItem.calculateResult();
}
}
return null;
}
在此解决方案中,最多只需计算一个单一值。 – 2012-02-21 05:18:56
不是
表达式? Dothis:别的事情有点类似。
i == 0?真:假是你在找什么?
我希望在JAVA中不存在这样的方法,如果你的情况只是byte/short/char/int
,你可以使用if-then-else
或者简单地切换块。
自Java 5以来,自Java 5以来,甚至是'String',或'enum'。 – BalusC 2012-02-21 05:10:03
从您的问题意见提供the link:
您可以使用解码功能在SQL语句中如下:
SELECT supplier_name, decode(supplier_id, 10000, 'IBM', 10001, 'Microsoft', 10002, 'Hewlett Packard', 'Gateway') result FROM suppliers;
最接近的将是条件运算符:
String supplierName = supplierId == 10000 ? "IBM"
: supplierId == 10001 ? "Microsoft"
: supplierId == 10002 ? "Hewlett Packard"
: "Gateway";
或者,也许一个(静态)词典/图:
Map<Integer, String> suppliers = new HashMap<Integer, String>();
suppliers.put(10000, "IBM");
suppliers.put(10001, "Microsoft");
suppliers.put(10002, "Hewlett Packard");
suppliers.put(null, "Gateway");
// ...
String supplierName = suppliers.get(supplierId);
if (supplierName == null) supplierName = suppliers.get(null);
关于解码的好处是每个值只在需要时才计算。但在你的解决方案中,值必须先计算出来。 – 2012-02-21 05:18:11
如果你正在寻找一个地图就像集合,只根据请求创建它的值,但缓存先前请求的值,看一下Google Guava Cache和LoadingCache。
否则,请转到switch
或其他基于语言的条件语句,因为这会使您的代码更具可读性和可维护性。
- 1. 是否有可能具有jQuery功能的OR语句?
- 2. 如何使用功能/ SWITCH CASE语句方法在Java中
- 3. VB.NET'具有'语句性能?
- 4. 如果语句的功能在java
- 5. JavaScript是否具有与LINQ的Select语句类似的功能?
- 6. 从SQL语句的功能
- 7. OOP功能和if语句
- 8. 功能从select语句
- 9. 功能与if/else语句
- 10. if语句内部功能
- 11. 功能switch语句在Javascript
- 12. 预处理语句功能
- 13. IF else语句功能
- 14. 批处理文件具有If-Else语句的替代方法?
- 15. 具有咖喱功能的Scala无点呼叫语法
- 16. Java方法和返回语句
- 17. Java - 在If语句中使用方法
- 18. java布尔方法返回语句
- 19. Java方法 - 缺少返回语句
- 20. Java:具有与ArrayList相似的方法/功能的二维数组
- 21. Java:切换语句不能正确调用方法
- 22. Yield语句不能匿名方法
- 23. java是否具有钳位功能?
- 24. 如何比较Java中的功能相等的SQL语句?
- 25. 具有通用功能的方法的工厂模式
- 26. 具有类似功能的组功能
- 27. Android Java日历替代方案,具有以下功能
- 28. 如何创建一个具有goto语句的主菜单功能?
- 29. Select语句,需要像where语句中的功能案例
- 30. TSQL SELECT语句具有@varible
我不确定你真的问/需要什么。简单的“if {...} else {...}”有什么问题? – BalusC 2012-02-21 04:54:42
@BalusC请看看这个。 http://www.techonthenet.com/oracle/functions/decode.php。这不是比'if {...} else {...}'简单吗? – Bishan 2012-02-21 04:59:25