2016-09-22 5 views
-2

Taxi 유형 또는 Shuttle 유형의 인수를 취하는 메소드를 작성했습니다. 여기에 그것의 주요 아이디어입니다 :두 가지 유형의 인수 초기화

public boolean requestPickup(Passenger passenger, Class<?> vehicleClass){ 
     Taxi taxi = scheduleTaxi(); 
     if(taxi != null) { 
      taxi.setPickupLocation(passenger.getPickupLocation()); 
      return true; 
     } 
     else { 
      return false; 
     } 
} 

누군가 내게 설명 할 수있는 두 가지 유형의 인수를 초기화 할 수 있습니까?

감사합니다.

+0

자바 특성의 개념이 없기 때문에 차량 인터페이스를 통과한다. 논쟁하고 싶니? –

+0

죄송합니다, 당신이 달성하기를 원하는 것이 전혀 분명하지 않습니다. 좀 더 자세히 설명해주십시오. – yole

+0

'택시'와 '셔틀'및 모든 수퍼 유형 간의 관계는 무엇입니까? – ChiefTwoPencils

답변

0

이렇게 반사를 사용할 수 있습니다.

+0

하지만 .forName()은 String 유형에만 해당됩니까? – jiji

+0

업데이트를 찾아주세요. –

0

인터페이스 차량을 사용하고 Taxi라는 이름의 두 클래스와 셔틀을 확장합니다. 이제 서명 통과 인터페이스에서 매개 변수로. 그러면 인터페이스를 확장하는 모든 객체를 전달할 수 있습니다.

public interface Vehicle { 

} 

public class Taxi implements Vehicle { 

} 

public class Shuttle implements Vehicle { 

} 

해주기 파라미터

public void requestPickup(Passenger passenger, Class<? extends Vehicle > Vehicle ) { 

Vehiclec taxi = new Taxi(); 
Vehiclec shuttle = new Shuttle(); 
     ..... 

} 
+0

메소드의 서명을 변경할 수 없습니다.이 매개 변수는 – jiji

+0

클래스 Vehicle을 매개 변수로 사용하지만 범위를 제한합니다. – Cyclotron3x3

관련 문제