Как заставить переменную инициализироваться в объекте JavaFX? - PullRequest
1 голос
/ 25 августа 2010

Я делаю класс javaFX, и мне нужно, чтобы одна из переменных была инициализирована для его работы (в моей программе нет значения по умолчанию, которое я могу использовать). Это лучшее, что я придумал, но я бы хотел что-то, что не скомпилируется, если вы не инициализируете переменную.

Пример класса:

Public class Class1{

    public-init var var1:String;

    postinit{
        if(var1 == null){
            println("You need to initialize var1");
        }
}

Я бы назвал это так:

var object1 = Class1{var1:"input"};

Как я могу предотвратить его компиляцию, если я это сделаю?

var object1 = Class1{};

Ответы [ 3 ]

1 голос
/ 09 сентября 2010

Вы можете использовать это:

public class Class1 {
    public var var1: String = "" on replace{
                if (var1 == null) {
                    var1 = "";
                }
            };
}

var object1 = Class1{};
println(object1.var1);
object1.var1="HOLA :)";
println(object1.var1);

Выход:

Mundo
HOLA
 :)
1 голос
/ 27 августа 2010

К сожалению, я думаю, у вас есть лучшее решение для принудительной инициализации. Единственное, что вы можете сделать, это установить значение по умолчанию:

public var var1: String = "BOGUS";
0 голосов
/ 10 сентября 2010

Или, может быть:

public class Class1 {

    public-init var var1: String;

    init {
        if (var1 == null) { //or var1. length() == 0 ) {
            println("You need to initialize var1");
            Stage {
                title: "Ups!!!"
                onClose: function() {
                }
                scene: Scene {
                    content: [
                        Label {
                            text: "You need to initialize var1"
                        }
                    ]
                }
            }
        }
    }

}

alt text

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...