SimpleProperties用法

时间:2018-12-21 20:34:42

标签: java properties

在Java FX应用程序中使用属性我对了解属性用法产生了疑问:在使用类实例成员... Property与Simple ... Property之间有什么实际区别?

props.setProperty("annotators", 
"tokenize,ssplit,pos,lemma,ner,parse,depparse,coref,kbp,quote");
    // set a property for an annotator, in this case the coref annotator is being set to use the neural algorithm
    props.setProperty("coref.algorithm", "neural");
    // build pipeline
    StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
    // create a document object
    CoreDocument document = new CoreDocument(content);
    // annnotate the document
    pipeline.annotate(document);

反对

public class Foo {

    private IntegerProperty id;

    public Foo(int id) {
        this.id = new SimpleIntegerProperty(id);
    }

    public IntegerProperty idProperty() {
        return this.id;
    }

    public int getId() {
        return id.get();
    }

    public void setId(int id) {
         this.id.set(id);
    }
}

1 个答案:

答案 0 :(得分:1)

您的第一个实现确实是一个很好的实现。

您应尽可能使用最抽象的类型(在您的情况下为IntegerProperty)。

主要原因是它允许您更改实现而无需更改方法的原型/定义,因此无需更改任何调用方。

考虑一下Set的相同情况,然后从HashSet具体类型迁移到LinkedHashSet。