Java方法具有IF-THEN-ELSE语句的功能
在Oracle/PLSQL中是否有类似java的解码函数中具有IF-THEN-ELSE语句功能的方法?不是 表情?多蒂斯:艾尔塞多这是相似的Java方法具有IF-THEN-ELSE语句的功能,java,Java,在Oracle/PLSQL中是否有类似java的解码函数中具有IF-THEN-ELSE语句功能的方法?不是 表情?多蒂斯:艾尔塞多这是相似的 i==0?true:false是您想要的吗?我希望JAVA中没有这种方法,如果您的大小写只有byte/short/char/int,您可以使用if-then-else或简单地切换块。没有,但您要求的是这样的东西: interface CaseItem<K, V> { boolean isDefaultCondition();
i==0?true:false是您想要的吗?我希望JAVA中没有这种方法,如果您的大小写只有byte/short/char/int,您可以使用if-then-else或简单地切换块。没有,但您要求的是这样的东西:
interface CaseItem<K, V> {
boolean isDefaultCondition();
@NotNull
K conditionValue();
V calculateResult();
}
您在问题评论中提供的:
您可以在SQL语句中使用decode函数,如下所示:
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);
如果您正在寻找一个类似于地图的集合,它只在请求时创建它的值,但缓存以前请求的值,请查看Google Guava和
否则,使用switch或其他基于语言的条件语句,因为它将使您的代码更具可读性和可维护性。我不确定您真正想要/需要的是什么。简单的if{…}else{…}有什么错?@BalusC请看这个。这不是比if{…}else{…}或enum(从Java 5开始)或字符串(从Java 7开始)更简单吗?解码的好处是,每个值只在需要时计算。但在您的解决方案中,必须先计算值。在此解决方案中,如果需要,最多计算一个值。
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);