【问题标题】:Incompatible conditional operand types void and String不兼容的条件操作数类型 void 和 String
【发布时间】:2022-07-07 20:06:23
【问题描述】:

我想用“traitement en chevauchement non pris en charge”更改computeDto.getPharmacie().getMotiRefuse() 的值,这对我不起作用,我收到此错误Incompatible conditional operand types void and String! 我该如何编辑它! 她是我的代码吗:

Map result = new HashMap<String, Object>();
                        long dureeTrait=Long.parseLong(dureeTraitement); 
                        if(difference_In_Days > dureeTrait) {
                        result.put("motifPharmacie", computeDto.getPharmacie().getMotiRefuse()!= null ? computeDto.getPharmacie().getMotiRefuse(): "");
                        } 
                        else {
                        result.put("motifPharmacie",computeDto.getPharmacie().getMotiRefuse()!= null ? computeDto.getPharmacie().setMotiRefuse("traitement en chevauchement non pris en charge "): "");
                        }

【问题讨论】:

    标签: java


    【解决方案1】:

    您没有发布“setMotiRefuse()”方法的完整代码。但我认为这是一个返回 void 的常规 setter 方法。

    问题出在这行代码

    result.put("motifPharmacie",computeDto.getPharmacie().getMotiRefuse()!= null ? computeDto.getPharmacie().setMotiRefuse("traitement en chevauchement non pris en charge "): "");
    

    你不能在一个声明中做到这一点。请将它们分成两部分:

    computeDto.getPharmacie().setMotiRefuse("traitement en chevauchement non pris en charge ");
    result.put("motifPharmacie",computeDto.getPharmacie().getMotiRefuse()!= null ? computeDto.getPharmacie().getMotiRefuse(): "");
    

    原因是:set方法返回void 所以操作数“?”看到您返回了不兼容的 void 或字符串。所以在三元运算符“?”中使用get方法而不是设置。

    【讨论】:

      猜你喜欢
      • 2011-10-13
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      相关资源
      最近更新 更多