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

发布于 2024-09-16 03:52:49 字数 448 浏览 4 评论 0原文

我正在制作一个 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{};

I am making a javaFX class and I need one of the variables to be initialized in order for it to work (in my program there's no default value I can use). This is the best I've come up with, but I'd like something that wont compile unless you initialize the variable.

Example Class:

Public class Class1{

    public-init var var1:String;

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

I'd call it like this:

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

How can I prevent it from compiling if I do this?

var object1 = Class1{};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

海夕 2024-09-23 03:52:49

不幸的是,我认为你有强制初始化的最佳解决方案。您唯一能做的就是设置默认值:

public var var1: String = "BOGUS";

Unfortunately, I think you have the best solution for forcing initialization. Only other thing you can do is set a default value:

public var var1: String = "BOGUS";
愿与i 2024-09-23 03:52:49

您可以使用这个:

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

You can use this:

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

Output:

Mundo
HOLA
 :)
深居我梦 2024-09-23 03:52:49

或者也许:

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

Or maybe:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文