如何避免Java中的重复属性?

时间:2019-07-24 09:35:21

标签: java

我正在尝试使java类在表中注册属性,并且没有重复的属性。

我不知道该使用哪种方法。

TriggerAttributes.java

public class TriggerAttributes extends TableTrigger {

    public void trigger() {
        if (!isEmptyCodeAtlas)
            this.attributesDouble(codeAtlas, Paths._Root_RelationPostale_Attributs._CodeAtlas, "Code Atlas déja utilisé, pas de doublon possible");
        if (!isEmptyCodeEden)
            this.attributesDouble(codeEden, Paths._Root_RelationPostale_Attributs._CodeEden, "Code Eden déja utilisé, pas de doublon possible");
        if (!isEmptyLibelle)
            this.attributesDouble(libelleCourt, Paths._Root_RelationPostale_Attributs._LibelleCourt, "Libellé déja utilisé, pas de doublon possible");
        if (!isEmptyCodeAtlas || !isEmptyCodeEden) {

            Vector<String> list = new Vector<String>();
            if (isEmptyLibelle)
                list.add("Libellé court");
            if (longeur == null)
                list.add("Longeur");
            if (largeur == null)
                list.add("Largeur");
            if (hauteur == null)
                list.add("Hauteur");
        }
        if (!isEmptyCodeAtlas && niveau == null)
            this.Exception = "Le champ Niveau est obligatoire si un code Atlas est utilisé";
    }

    private void attributesDouble(Object value, Path xPathValue, String error) {

        String Exception = "test";

        Request request = this.Attributs.createRequest();
        request.setSpecificFilter(new TriggerAttributes.FiltreAttributs(value, xPathValue));
        RequestResult result = request.execute();

        if (result.getSize() > 1) {
            this.Exception = this.Exception + error;
        }
    }

}

请分享您的想法。

1 个答案:

答案 0 :(得分:0)

我不确定是否收到问题,但是如果您尝试避免列表中出现重复项,那么最好使用Set / Hashset而不是列表,因为这样做不会 允许重复。 https://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html

如果有重复,就不会抛出错误,只是不会添加到整个事情中。