나는이 책을 지금 읽었습니다.인터페이스의 참조를 null로 지정할 수 있습니까?
public class AdapterWrapper implements ListAdapter {
ListAdapter delegate=null;
// other code
}
ListAdapter
만든 null이 할당 된 공중 인터페이스 및이 인터페이스의 기준이다. 이게 유효합니까? 나는 이것으로 정말로 혼란 스럽다.
나는이 책을 지금 읽었습니다.인터페이스의 참조를 null로 지정할 수 있습니까?
public class AdapterWrapper implements ListAdapter {
ListAdapter delegate=null;
// other code
}
ListAdapter
만든 null이 할당 된 공중 인터페이스 및이 인터페이스의 기준이다. 이게 유효합니까? 나는 이것으로 정말로 혼란 스럽다.
예, 유효합니다. 단지 delegate
이 ListAdapter
인터페이스에 대한 참조이며 현재 null
을 가리키고 있음을 의미합니다.
나중에는 에 ListAdapter
인터페이스를 구현하는 모든 클래스, 같은 SimpleCursorAdapter
, WrapperListAdapter
또는 원하는 다른 구현을 지적 할 수있다.
참조로 인터페이스 유형을 사용하면 런타임에 어떤 클래스가 될지 미리 알 수없는 경우 유용합니다. 그래서 여러분은 단지 인터페이스를 가리키는 참조를 사용합니다.
변수의 값은 null 참조입니다. 이것에 대해서는 아무런 문제가 없습니다.
모든 참조 유형 변수의 값은 호환 가능한 유형의 인스턴스에 대한 참조이거나 null입니다. 이것은 클래스와 인터페이스 모두에서 동일합니다.
그냥 여기 Interface(Java)에 위키 백과를 인용 : 자바에서
객체 참조가 인터페이스 타입으로 지정 될 수있다; 이 경우에는 null이거나 인터페이스를 구현하는 이있는 객체에 바인딩되어야합니다.
코드는이 정의에 따라 유효합니다.
ErichLancaster : 예, 인터페이스가 개체로 직접 존재하지 않습니다. 객체는 항상 인터페이스를 구현할 수있는 일부 클래스에서 만들어집니다. 따라서 인터페이스 변수에는이 인터페이스를 구현하는 클래스의 일부 객체에 대한 참조 또는 null이 포함됩니다. –