我正在编写一个简单的方法,该方法返回int数组的最小值和最大值。
return new int[]{Arrays.stream(arr).min().getAsInt(), Arrays.stream(arr).max().getAsInt()};
这让我开始思考,为什么我可以使用getAsInt()方法,而该方法却不同于我正在使用的方法(数组)?我什至不必导入OptionalInt类,为什么呢?是什么决定在这种特殊情况下可以使用和不能使用的方法?预先感谢您的任何答复。
答案 0 :(得分:0)
这是因为方法/post/128/asdd
/post/8784/assd
返回一个min()
对象。然后,您可以调用方法OptionalInt
。您不是在类getAsInt()
中调用该方法。每个方法都返回特定类型的值。
答案 1 :(得分:0)
特别是在Arrays
上,您仅调用stream
方法:https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#stream-int:A-还有更多方法,但这是接受int
s数组的方法。
然后,它产生一个IntStream
,其中有max
/ min
创建一个OptionalInt
,然后在该对象而不是getAsInt
上调用Arrays
也许您在问是否可以对“从某处获得”的对象调用方法,而无需直接import
对其类进行调用:答案是肯定的,它已经在最简单的“ Hello World”中发生:何时您写了System.ou.println(...)
,您是在PrintStream
上调用println
,在编写“ Hello World”时没有人导入。