[英]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.