내 메소드는 Object를 입력으로받습니다. 어떻게 타입인지를 어떻게 결정합니까? 그래서 예를 들면개체 유형을 감지 한 다음 그에 따라 캐스트 하시겠습니까?
다음 binarySearch 방법 내부 binarySearch(Object o);
, 난 개체 오의 유형 (또는 클래스)를 결정하는 방법이 필요합니다. 그럼 나는 그 타입으로 그것을 캐스팅해야합니다. 내가 어떻게 그럴까 ???
그리고 더 구체적으로 Object o는 기본 클래스의 하위 클래스입니다 (EG SalariedEmp는 Employee의 자식 임). 특히 기본 클래스가 필요합니다.
편집 : 나는 완전히 다른 질문이어야하는, 내가 원하는 것을하는 방법을 알아 냈다. Comparable
의 .compareTo 메서드를 사용하여 해당 개체의 개인 데이터를 기반으로 두 개체를 비교하는 방법을 설정해야했습니다. 내가해야 할 일은 내 클래스를 implements
키워드를 사용하여 'Comparable'로 구현하는 것입니다. 따라서 어떤 객체 유형이 내 binarySearch 메서드에서 비교 되더라도 동일한 (알 수없는) 유형이며 Comparable이 구현되어 있으면 작동합니다. 이것은 내 binarySearch 메소드를 모든 유형의 비교 가능한 클래스와 함께 재사용 가능하게 만듭니다.
그래서 모든 공정성에서 나는 원래 질문을 다루는 대답을 수락 할 것입니다. 이 작업을 수행하는
:
왜 객체 대신 직원을 고용하게하지 마시겠습니까? –
일반적으로 instanceof 연산자를 사용하면이 작업을 수행 할 수 있지만 더 많은 코드를 게시하면 컬렉션을 다루는 것처럼 보일 수 있으므로 제네릭을 사용하여 더 나은 솔루션을 찾을 수 있습니다. –
"유형을 결정하는 데 ... 필요합니다."** ** 왜 **? 기본 클래스의 인스턴스를 동일한 컨테이너에 넣으면 일반적으로 파생 된 유형을 잊어 버릴 수 있습니다. 기본 유형의 인터페이스를 구현한다는 사실에만 관심이 있음을 문서화합니다. –