java - 根据 boolean 值插入参数

标签 java methods parameters

是否可以根据 boolean 值在函数中插入参数?

例如,我有这段代码:

Math.min(boolA ? doubleValueA, boolB ? doubleValueB);

提前致谢!

最佳答案

如果 boolAboolB 为 false,则使用默认值(例如 Double.MAX_VALUE):

Math.min(
    (boolA) ? doubleValueA : Double.MAX_VALUE,
    (boolB) ? doubleValueB : Double.MAX_VALUE
);

编辑

如果您有一个想要查找最小值的变量列表,但前提是设置了相应的 boolean 变量,请将列表加载到数组中并查找最小值:

ArrayList<Double> myArray = new ArrayList<Double>();
if (boolA) myArray.add(doubleValueA);
if (boolB) myArray.add(doubleValueB);
// etc

double minValue = Double.MAX_VALUE; // start with largest possible value
// loop through and replace with any smaller values
for (double val : myArray)
    if (val < minValue) minValue = val;
// val now contains the smallest value

编辑2

这也可以普遍应用于其他函数。有选择地将参数添加到数组中,然后将该数组传递给函数。如果您可以控制函数定义,则可以使用 variable arguments让事情变得更简单。

public double MyMin(double... myArray) {
    double minValue = Double.MAX_VALUE; // start with largest possible value
    // loop through and replace with any smaller values
    for (double val : myArray)
        if (val < minValue) minValue = val;
    // val now contains the smallest value
    return val;
}

关于java - 根据 boolean 值插入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5224623/

相关文章:

java - 使用 Spring Data 按日期排序 ASC

java - 实例变量的初始化程序 block

python - 在 Python 中定义类方法的多种方法?

MySQL 准备好的带有参数的语句不返回数据

java - ActionMappingParametersInteceptor - 为什么我需要它

java.lang.OutOfMemory错误: GC overhead limit exceeded android studio

java - spring batch tasklet 中的 Spring Data Jpa 存储库抛出 TransactionRequiredException

java - 如何重写 JTextArea isEnabled() 方法

c++ - 为什么允许将派生类的方法静态转换为基类的方法?

Java数组特定行的总和