Java 8로 손을 더럽 히고 아래와 같은 동작을 발견했습니다.
public static void main(String... args){
System.out.println("[Start]");
int[] ints = {1, 2, 3, 4};
Stream.of(ints).forEach(i->System.out.println("Int : "+i));
Integer[] integerNums = {1, 2, 3, 4};
Stream.of(integerNums).forEach(i->System.out.println("Integer : "+i));
System.out.println("[End]");
}
출력은 다음과 같습니다.
[Start]
Int : [I@5acf9800
Integer : 1
Integer : 2
Integer : 3
Integer : 4
[End]
코드가 두 경우 모두에서 모든 int와 Integer를 인쇄 할 것으로 예상하고 있었습니까? 이것에 대한 통찰력은 크게 도움이 될 것입니다 ...
제네릭은 기본 유형에서 작동하지 않습니다. Stream.of
방법은 다음과 같이 선언
static <T> Stream<T> of(T... values)
사용할 때
Stream.of(ints)
여기서 ints
인 int[]
, 자바의 숫자 표시되지 않은 int
요소 (프리미티브 타입), 단일 본다 int[]
(참조 형식 인) 소자. 따라서 단일 int[]
은로 표시되는 배열의 유일한 요소로 바인딩됩니다 T... values
.
그래서 values
가 int[][]
되고 각 요소는 다음 int[]
과 같이 인쇄됩니다.
[I@5acf9800
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다