Добрый день. Сегодня в канале джабера обсуждалась проблемка одна. В итоге-то все решилось, но мне кажется не самым лучшим способом. Хочется услышать комментарии разработчиков. Тем более самому интересно ввиду скорого перехода на 5.2
Код:
package contract.module.voiceip;
import ru.bitel.bgbilling.kernel.event.Event;
import ru.bitel.bgbilling.kernel.script.server.dev.EventScriptBase;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.sql.ConnectionSet;
import ru.bitel.bgbilling.kernel.event.events.ContractParamChangedEvent;
import bitel.billing.server.contract.bean.*;
public class login
extends EventScriptBase
{
@Override
public void onEvent( Event event1, Setup setup2, ConnectionSet connectionSet3 )
throws Exception
{
int cid = event1.getContractId();
int pid = event1.getParamId();
print(cid);
print(pid);
}
}
так не работало, естественно, потому что getParamId() определен у ContractParamChangedEvent.
сделать вызов
Код:
public void onEvent( ContractParamChangedEvent event1, Setup setup2, ConnectionSet connectionSet3 )
тоже не получается, потому что компилятор ругается что мы не переопределили абстрактный метод.
в итоге пришлось сделать приведение типов
Код:
ContractParamChangedEvent event2=(ContractParamChangedEvent)event1
Но насколько я помню теорию - так делать не сильно хорошо
Или пофигу? Если нет, то как лучше сделать?