int배열에 있는 수들을 특정한 기준으로 정렬하기 위해 costom comparator을 만들었는데 아래와 같은 오류가 발생하였다.
Main.java:48: error: no suitable method found for sort(int[],<anonymous Comparator<Integer>>)
Arrays.sort(arr, new Comparator<Integer>(){
^
method Arrays.<T#1>sort(T#1[],Comparator<? super T#1>) is not applicable
(inference variable T#1 has incompatible bounds
equality constraints: int
upper bounds: Integer,Object)
method Arrays.<T#2>sort(T#2[],int,int,Comparator<? super T#2>) is not applicable
(cannot infer type-variable(s) T#2
(actual and formal argument lists differ in length))
where T#1,T#2 are type-variables:
T#1 extends Object declared in method <T#1>sort(T#1[],Comparator<? super T#1>)
T#2 extends Object declared in method <T#2>sort(T#2[],int,int,Comparator<? super T#2>)
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
그 이유를 찾아보니, comparator은 int를 지원하지 않고, Integer만 지원한다는 것을 알게 되었다.
때문에 int[] arr로 선언했던 것을 Integer[] arr로 바꾸면 된다.
int와 Integer가 다르다는 것은 이번에 처음 안 사실인데 꼭 기억해야겠다.