캐스트에 다운 될 수없는 것을 다운 캐스트하려고하고 올바른 접근 방식이 무엇인지 궁금합니다. 유스 케이스의 경우 확인 된 규칙 목록과 실패한 규칙 목록을 생성합니다. 실패한 규칙은 규칙의 하위 클래스입니다. 하지만 다운 캐스팅 같은 것
FailedRule failedRule = (FailedRule) rule; 규칙 객체가 나는 복제를 인스턴스화Java에서의 강제 다운 캐스팅
는이 문제를 해결하기 위해의 인스턴스의 FailedRule하지 않기 때문에
이 실패합니다;
FailedRule failedRule = new FailedRule (규칙);
public class FailedRule extends Rule{
/*
*force a down cast from Rule to FailedRule through cloning
*/
public FailedRule (Rule upcast){
super.setRuleCode(upcast.getRuleCode());
super.setType(upcast.getType());
..
처럼 보인다? 자신에 대답하기 위해 가, 디자인은 결함이 코드는해야한다 :
public class FailedRule{
private Rule rule;
..
public setRule(Rule rule){
..
을 어떻게 casted_ 수없는 개체에 downcast 강제로하는 데 결국 궁금하네요. 당신이 정말로하고 싶은 것을 우리에게 설명하십시오. –
나도 그래 :-). 규칙 목록을 반복하고 실패한 규칙 목록을 반환합니다. 점검 프로세스는 왜, 언제, 어떻게 실패했는지에 대한 규칙 당 정보량을 상당량 반환합니다. 마크의 대답은 정확하고, 나의 디자인은 틀렸고 실패한 규칙은 '규칙'이라고 말할 수는 없다. 그것은 '규칙이 있습니다. 이 주석에 코드를 넣을 수 없기 때문에 질문을 편집했습니다. – Meindert