기존 클래스를 상속하거나 디자인 패턴을 사용하지 않아도
클래스 밖에서 기존 클래스의 멤버 함수인것처럼 사용 가능하다.
Context
클래스를 확장하여 showToast
라는 메소드를 작성합니다.
이 함수는 메시지(String)와 지속 시간(Int, 기본값은 Toast.LENGTH_SHORT
) 두 가지 파라미터를 받습니다.
함수를 호출하면 해당 메시지의 Toast가 지정된 지속 시간 동안 화면에 나타나야 합니다.
MainActivity에서 이 확장 함수를 사용하여 토스트 메시지를 출력해봅니다.
Ex : Hello World
확장함수 만들기
fun Context.showText(message: String, time: Int = Toast.LENGTH_SHORT) {
Toast.makeText(this, message, time).show()
}
Context 클래스에 showText 함수를 추가.
this는 확장 함수가 호출된 Context 객체를 나타낸다.
확장함수 호출
showText("프래그먼트 생성")
showText 함수로 토스트 메세지 생성. time 값을 지정 안해줬으니 자동으로 기본값인
Toast.LENGTH_SHORT 가 설정되어서 짧게 토스트 메세지가 나온다.