마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Operator '==' cannot be applied to 'int' 관련 질문

0 추천

 

NumberAdapter numberAdapter = new NumberAdapter();
int number_except = Integer.parseInt(textView_number_except.getText().toString());
int number_max = Integer.parseInt(textView_number_max.getText().toString());

button_add.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        numberAdapter.addItem(new Number(String.valueOf(number_max)));
        recyclerView_setting.setAdapter(numberAdapter);

        if (number_except == numberAdapter.getItem(0)){
            -- 실행 --
        }
    }
});




 

numberAdapter라는 어뎁터에 number_max라는 수를 집어넣어 recyclerView_setting이라는 recyclerView에 숫자를 띄우는 중인데

numberAdapter에 처음 집어넣은 숫자와 number_except가 동일할 경우 --실행--이라는 코드를 실행하려고 하는데

Operator '==' cannot be applied to 'int', 'org.techtown.randomnumber.Number'라는 오류가 뜨고 있습니다.

 

public class Number {
    String number;

    public Number(String number){
        this.number = number;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }
}

 

numberAdapter.addItem(0)이 int로 적용이 안되는 것인지 모르겠네요... 어떻게 해야하나요?

 

 

 

 

 

쿠롱 (400 포인트) 님이 2022년 10월 19일 질문

1개의 답변

0 추천

하나는 String 이고 하나는  int이기 때문에 바로 비교가 안됩니다. String이나 int로 타입을 맞추신 후 비교하세요.

number_except == parseInt(numberAdapter.getItem(0))

// or

numberAdapter.getItem(0).equals("" + number_except)

 

단순히 숫자 하나만 사용할 거면 왜 굳이 Number 클래스를 만들어서 사용하는지 모르겠네요. 이런 경우는 Integer클래스/ int 타입만으로 충분해 보이는데. 이렇게 하면 위의 문제도 없을 것 같구요.

spark (227,530 포인트) 님이 2022년 10월 19일 답변
numberAdapter.getItem(0)으로 값을 불러오는데 값이 안나오는것같아 Logcat으로 numberAdapter.getItem(0)을 Log.d(TAG, numberAdapter.getItem(0)+""); 라고 확인해보는데 D/tag: org.techtown.randomnumber.Number@5361a92라고 뜨는데 왜그런지, 이것만 보고는 값이 안나오는지 알기 어렵나요?
값을 출려할 때 내부적으로 사용되는 메소드가 Object클래스에 있는 toString 입니다. 따라서 toString을 오버라이드하셔야 원하는 형태로 출력이 가능합니다. 안드로이드 스튜디오에서 해당 클래스에서 마우스 오른쪽 버튼을 누르시면(못 찾으면 구글링하세요) toString을 자동으로 오버라이드 해주는 기능을 이뇬하면 편합니다.
...