推土机映射是vs get

时间:2014-10-22 11:23:59

标签: java javabeans dozer

在以下情况中:

public class Race {
    private Status finished;

    public Status getFinished() {
        return finsihed;
    }

    public void setFinished(Status finished) {
        this.finsihed = finished;
    }

    public boolean isFinished() {
        return finished == Status.FINISHED;
    }
}

public class RaceDTO {
    private Status finished;

    public Status getFinished() {
        return finsihed;
    }

    public void setFinished(Status finished) {
        this.finsihed = finished;
    }
}

Dozer正在使用isFinished()方法而非getFinished()方法映射RaceDTO类。为什么这样以及如何应对它?我更喜欢使用注释。

4 个答案:

答案 0 :(得分:0)

如果返回类型为boolean“is”,则使用前缀而不是“get”

答案 1 :(得分:0)

isFinished是表示布尔返回类型的常用方法。

if ( race.isFinished() ) {} 

VS

if ( race.getFinished() ) {}

第一个是abit更清晰

答案 2 :(得分:0)

根据JavaBens specification的“ 8.3属性的设计模式”一节,布尔属性可能有一个“”的acccess方法。如果有一个,这个方法将优先于“ get ”(如果存在)。

答案 3 :(得分:0)

我找到了答案。我必须在一个字段上添加注释,然后不调用任何方法

public class Race {
    @Mapping("finished")
    private Status finished;

    public Status getFinished() {
        return finsihed;
    }

    public void setFinished(Status finished) {
        this.finsihed = finished;
    }

    public boolean isFinished() {
        return finished == Status.FINISHED;
    }
}