Меня попросили расширить класс, который реализует определенную функцию, которую нужно изменить, чтобы избежать вставки в базу данных, которая больше не нужна.
Моя проблема в том, что при просмотре функции I´меня попросили выполнить репликацию в новом классе Java, и я обнаружил следующее:
function createDup() {
//some code here...
//the two lines I want to comment out in the new class...
MboSetRemote myDoclinksSetRemote = getMboSet("DOCLINKS");
myDoclinksSetRemote.copy(newWORemote.getMboSet("DOCLINKS"));
//code I want to keep the same in the new class...
if (this instanceof psdi.app.work.WORelease) {
dup = getTranslator().toInternalString("WORELEASEDUPFLAG", getString("dupflag"));
} else if (this instanceof WOChange) {
dup = getTranslator().toInternalString("WOCHANGEDUPFLAG", getString("dupflag"));
} else {
dup = getTranslator().toInternalString("WODUPFLAG", getString("dupflag"));
}
// some more code here..
Можно ли мне сохранить ту же логику, но делать это из нового класса?
ДляНапример, если я создал класс ExtendsOriginal.java, где я делаю расширение и пытаюсь изменить функцию, упомянутую выше (createDup), как я могу сделать то же самое, что делается в исходной функции класса? В этот момент я только что попытался скопировать точно такой же код ... но я получаю ошибку (несовместимые условные операнды типа ExtendsOriginal и WORelease) в таких условных выражениях, как: if (this instanceof psdi.app.work.WORelease) {...}
public class ExtendsOriginal extends psdi.app.work.Original {
public ... createDup(){
//same code as original but without the two fist lines..
if (this instanceof psdi.app.work.WORelease) {
dup = getTranslator().toInternalString("WORELEASEDUPFLAG", getString("dupflag"));
}
}
}
Кто-то знает, как с этим справиться? Спасибо.