2014-01-12 4 views
0

У меня есть класс, который имеет некоторые переменные типа SimpleStringProperty. Когда этот класс инициализируется с помощью конструктора без аргументов, такого как: Foo f = new Foo();, переменные SimpleStringProperty не инициализируются. Поэтому я должен инициализировать этот экземпляр следующим образом: Foo f = new Foo(null, null);Инициализировать экземпляр класса, который имеет только переменные типа свойства. JavaFX

Но есть ли другой простой/чистый способ инициализировать экземпляр таких классов? Я также попытался расширить класс как это:

public class Foo extends StringPropertyBase{//...},

, но до сих пор ни один аргумент конструктора не не инициализирует переменные.

Foo.java

public class Foo{ 
    private SimpleStringProperty x; 
    private SimpleStringProperty y; 

    public Foo(String a, String b){ 
     this.x = new SimpleStringProperty(a); 
     this.x = new SimpleStringProperty(b); 
    } 

    public StringProperty xProperty(){return x;} 
    public StringProperty yProperty(){return y;} 
    //... 
} 

ответ

0

Разве вы не можете просто сделать что-то вроде этого, который инициализирует их в пустую строку ""?

public Foo() { 
    this.x = new SimpleStringProperty(""); 
    this.y = new SimpleStringProperty(""); 
} 

Очевидно, это можно изменить, чтобы обеспечить любые разумные по умолчанию значения по умолчанию.

свойства могут быть изменены в другое время чем-либо, что связанный с ней или путем предоставления сеттеров, которые позволяют свойство обновляться, что-то вроде этого:

public void setX(String value) { 
    this.xProperty().set(value); 
} 
+0

Спасибо! Я должен был подумать об этом. – Vaib

Смежные вопросы