我正在创建一个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{};
答案 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"
}
]
}
}
}
}
}