2016-04-04 24 views
3

Her bir veri türünde isInstance kontrol etmem gereken bu tür durumlardan sakınmak için bu örneği nasıl yeniden girebilirim? Takip edebileceğim bir desen var mı?Önleme isIstance deyimi

public interface GenericData {} 

public interface IntegerData extends GenericData{ 
    public Integer Data(); 
} 

public interface StringData extends GenericData{ 
    public String Data(); 
} 

public interface Client { 
    public boolean LoadData(GenericData data); 
} 

public class IntegerClientImpl implements Client{ 
    public boolean LoadData(GenericData data){ 
     return IntegerData.class.isInstance(data); 
    }; 
} 

cevap

7

Sen Generics'i

public interface Client<Data extends GenericData> { 
    public boolean LoadData(Data data); 
} 

public class IntegerClientImpl implements Client<IntegerData> { 
    @Override 
    public boolean LoadData(IntegerData data){ 
     // ... 
    } 
} 
ben kod yapısında bazı ağır değişiklik bekliyordum
+1

kullanabilirsiniz ancak java hehe ... kolaylaştırdı –