코틀린 질문 입니다.


class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    but1.setOnClickListener(){

        var random: Random? = null
        var number: Int = random!!.nextInt(6)

        when(number){
            1 -> Toast.makeText(this, "1입니다.",Toast.LENGTH_SHORT).show()
            2 -> Toast.makeText(this, "2입니다.",Toast.LENGTH_SHORT).show()
            3 -> Toast.makeText(this, "3입니다.",Toast.LENGTH_SHORT).show()
            4 -> Toast.makeText(this, "4입니다.",Toast.LENGTH_SHORT).show()
            5 -> Toast.makeText(this, "5입니다.",Toast.LENGTH_SHORT).show()
            6 -> Toast.makeText(this, "6입니다.",Toast.LENGTH_SHORT).show()

        }

    }

}

}

제가 1~6까지의 수에서 random클래스를 사용해 버튼을 클릭 할 때 마다 어떤 난수가 생성 되었는지 Toast로 출력받는 앱을 만들려고 하는데 버튼 클릭시 오류가 납니다. 코드상에는 오류가 없고 에뮬레이터에서 버튼 클릭시 앱이 꺼지는 오류가 발생하는데 코드중에 잘못된게 있나요??

참고로 레이아웃에 버튼 ID는 but1을 부여했습니다.

  • 2018년 01월 10일에 작성됨

조회수 209


Banner nodejs

1 답변


좋아요
0
싫어요
채택취소하기
var random: Random? = null
var number: Int = random!!.nextInt(6)    

random!! <-- 이 표현은 해당 변수가 null일수도 있는 타입이지만 null이 아니니까 그냥 신경쓰지 말고 실행하라는 뜻입니다. 바로 위에서 random을 null이라고 선언했는데 null 아니니까 강제로 실행하라고 하면 실행시에 오류가 날 수 밖에 없습니다.


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close