본문 바로가기
이슈해결/java

에러해결방법[java] comparator과 int

by 잔디🌿 2023. 9. 14.

    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가 다르다는 것은 이번에 처음 안 사실인데 꼭 기억해야겠다.