2つのエンティティクラスが少し異なりますが、ほとんど同じように と2つのエンティティクラスを使用しています。 StudentData
およびPassData
は両方ともgetDatatype()
およびgetPassIndLinkId()
のようなメソッドを持っています。2ビットの異なるオブジェクト用のJava関数
私は同様のコードを2回書くのを避けるために何ができますか?
private StudentData getStudentDataEqual(PassIndLinkReq passIndLinkReq, List<StudentData> dataList, Long val){
for (StudentData data:dataList) {
if (data.getPassIndLinkId().intValue()==passIndLinkReq.getId().intValue()){
switch (passIndLinkReq.getDatatype().intValue()) {
case 0:
case 1:
return data;
case 7:
if (data.getClassItemTreeId().equals(val)){
return data;
}
break;
...
}
}
}
return new StudentData();
}
// and this
private PassData getStudentDataEqual(PassIndLinkReq passIndLinkReq, List<PassData> dataList, Long val){
for (PassData data:dataList){
if (data.getPassIndLinkId().intValue()==passIndLinkReq.getId().intValue()) {
switch (passIndLinkReq.getDatatype().intValue()) {
case 0:
case 1:
return data;
case 7:
if (data.getClassItemTreeId().equals(val)){
return data;
}
break;
...
}
}
}
return new PassData();
}
StudentDataとPassDataは関連していますか? 1つは別のクラスのサブクラスですか? –
インターフェイスの使用についての考えですか? –
インターフェイスを使用してコードを2回書くのを防ぎませんが、同じ効果を達成するさまざまな方法がある場合にインターフェイスが使用されます。コードが共有されている場合は、共通の親クラスを使用します。 – fustaki