Cha*_*nil 10 java methods variadic-functions
我已经实现了Java方法来解决IN和OR条件.
以下是我的代码.
public static <T> boolean in(T parameter, T... values) {
if (null != values) {
System.out.println("IN values size.. " + values.length);
return Arrays.asList(values).contains(parameter);
}
return false;
}
public static boolean or(boolean... values) {
System.out.println("OR values size.. " + values.length);
return in(true, values);
}
public static void main(String[] args) {
System.out.println(or(false, true, false));
}
Run Code Online (Sandbox Code Playgroud)
输出是:
OR values size.. 3
IN values size.. 1
false
Run Code Online (Sandbox Code Playgroud)
但我期待以下输出:
OR values size.. 3
IN values size.. 3
true
Run Code Online (Sandbox Code Playgroud)
我不明白为什么varargs在in方法中的大小为1 .
在方法中
in(T parameter, T... values) //in(true, values); // values is T
Run Code Online (Sandbox Code Playgroud)
当你传递一个布尔数组时values,整个数组作为单个元素,T这就是显示它的原因1.
您正在传递布尔数组,接收类型是T,每个元素都被视为一个数组.
您可以在方法中打印值,看看结果是什么.你会看到一个数组对象.不是单独的布尔元素.
| 归档时间: |
|
| 查看次数: |
454 次 |
| 最近记录: |