如何强制在JavaFX对象中初始化变量?

时间:2010-08-25 18:02:14

标签: constructor javafx

我正在创建一个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 个答案:

答案 0 :(得分:1)

不幸的是,我认为你有强制初始化的最佳解决方案。您可以做的其他事情是设置默认值:

public var var1: String = "BOGUS";

答案 1 :(得分:1)

您可以使用:

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
 :)

答案 2 :(得分:0)

或者也许:

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