2010-08-25 8 views
1

Je crée une classe javaFX et j'ai besoin que l'une des variables soit initialisée pour que cela fonctionne (dans mon programme, il n'y a pas de valeur par défaut que je puisse utiliser). C'est le meilleur que j'ai trouvé, mais j'aimerais quelque chose qui ne compilera pas à moins d'initialiser la variable.Comment forcer l'initialisation d'une variable dans un objet JavaFX?

Exemple Classe:

Public class Class1{ 

    public-init var var1:String; 

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

Je l'appelle comme ceci:

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

Comment puis-je l'empêcher de compiler si je fais cela?

var object1 = Class1{}; 

Répondre

1

Malheureusement, je pense que vous avez la meilleure solution pour forcer l'initialisation. La seule autre chose que vous pouvez faire est de définir une valeur par défaut:

public var var1: String = "BOGUS"; 
+0

Il me semble que je pourrais lancer une exception si la variable n'est pas initialisée. Bien que ce soit encore post-compilation, c'est au moins une plainte plus forte. – Kyle

1

Vous pouvez utiliser ceci:

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

Sortie:

Mundo 
HOLA 
:) 
0

Ou peut-être:

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