繁体   English   中英

我可以使用哪些方法?

[英]Which methods can I use?

我正在编写一个简单的方法,它返回一个 int 数组的最小值和最大值。

return new int[]{Arrays.stream(arr).min().getAsInt(), Arrays.stream(arr).max().getAsInt()};

这让我开始思考,为什么我能够使用 getAsInt() 方法,而它来自与我正在使用的类(数组)不同的类? 我什至不必导入 OptionalInt 类,这是为什么呢? 在这种特殊情况下,是什么决定了我可以使用哪些方法,哪些方法不能使用? 预先感谢您的任何回复。

这是因为min()方法返回一个OptionalInt对象。 然后您可以调用方法getAsInt() 您不是从Arrays类调用该方法。 每个方法都返回一个特定类型的值。

特别是在Arrays ,您只调用stream方法: https : //docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#stream-int : A-还有更多,但这是接受一个int数组的那个。
然后它生成一个IntStream ,它具有创建OptionalInt max / min ,并且您在该对象上调用getAsInt ,而不是在Arrays上调用。

也许您在问是否可以在“从某处”获得的对象上调用方法,而无需直接import它们的类:答案是肯定的,它已经发生在最简单的“Hello World”中:当您编写System.ou.println(...) ,您正在PrintStream上调用println ,在编写“Hello World”时没有人导入它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM