ОБНОВЛЕНО
ОК, я ошибся в этом вопросе - пропустил несколько скобок ...
Во всяком случае, я думаю, что Берт F на что-то ...
Вы проверяете, не являются ли вещи (pccoCourant и rBale.getTauxCcf ()) пустыми, подразумевая, что они являются ссылками на объекты.
Затем вы проверяете, совпадают ли они (используя ==).
Вы, вероятно, хотите проверить, равны ли они:
if(
(!pccoNettNoAff && !transOPCVM && !garantie)
&& (
(pccoCourant == null)
|| (
(pccoCourant != null && rBale.getPcco() != null)
&& (
(pccoCourant.getId() != rBale.getPcco().getId())
|| (
pccoCourant.getId() == rBale.getPcco().getId()
&& tauxCourant!=null && rBale.getTauxCcf()!=null
&& rBale.getPartenaire()==null
&& ! rBale.getTauxCcf().equals(tauxCourant)
)
)
)
)
){
Остальное можно игнорировать:
Помимо сложности, упомянутой другими, у вас есть некоторая неопределенность в ваших более поздних условиях:
if(
(!pccoNettNoAff && !transOPCVM && !garantie)
&& (
(pccoCourant == null)
|| (
(pccoCourant != null && rBale.getPcco() != null)
&& (
(pccoCourant.getId() != rBale.getPcco().getId())
|| (pccoCourant.getId() == rBale.getPcco().getId()
&& tauxCourant!=null && rBale.getTauxCcf()!=null
&& rBale.getPartenaire()==null
&& rBale.getTauxCcf()!=tauxCourant)
)
)
)
){
Внутренние вложенные условия объединяют ИЛИ с ANDS на одном уровне.
Я подозреваю, что вы хотите:
if(
(!pccoNettNoAff && !transOPCVM && !garantie)
&& (
(pccoCourant == null)
|| (
(pccoCourant != null && rBale.getPcco() != null)
&& (
(pccoCourant.getId() != rBale.getPcco().getId())
|| (
(pccoCourant.getId() == rBale.getPcco().getId()
&& tauxCourant!=null && rBale.getTauxCcf()!=null
&& rBale.getPartenaire()==null
&& rBale.getTauxCcf()!=tauxCourant)
)
)
)
)
){