각 명령문에 대해 a에서 검색 한 요소를 명령문 자체에 캐스팅하는 것이 가능합니까 (아니면 권장 할 만합니까)? 목록의 각 요소는 <SubType>
입니다.Java의 캐스트 요소
즉 :
List<BaseType> list = DAO.getList();
for(<SubType> element : list){
// Cannot convert from element type <BaseType> to <SubType>
...
}
보다는 :
이List <BaseType> list = DAO.getList();
for(<BaseType> el : list){
<SubType> element = (<SubType>)el;
...
}
+1 인터페이스가 준수해야하는 계약 메커니즘을 너무 자세히 설명합니다. – aperkins
불행히도 DAO 코드는 우리가 아닙니다. 그러나 데이터 소스로의 피드는 다음과 같습니다. 우리는 클래스에 추가 기능을 원했기 때문에 (유일한 하위 클래스)을 하위 클래스로 만들었습니다. 우리가 입력을 제어하고 우리는 단지 객체를 거기에 넣었 기 때문에 검색된 객체가 실제로 중 하나가 될 것이라고 확신 할 수 있다고 느낍니다. 우리가 모든 코드를 관리한다면 100 % 정확할 것입니다. –
@Carl - 그러면 DAO를 래핑하고 원하는 것을 수행하는 * 다른 * 인터페이스를 제공하는 것이 좋습니다. 그렇지 않으면 코드베이스 전체를 변환해야합니다 (잠재적으로 - 이것이 얼마나 광범위하게 분포되어 있는지에 대한 가정을하고 있습니다). –