2017-03-09 6 views
5

Par exemple, dans Haxe je peux créer strictement Typage: var a:Float = 1.1; ou var b:String = "hello" et aussi dynamique, si nécessaire:Comment créer des variables dynamiques en Java?

var d:Dynamic = true; d = 22; d = "hi";

Comment puis-je créer ce genre de variables en Java?

+1

'Object' Je pense que c'est ce que vous cherchez. –

Répondre

11

Vous pouvez utiliser Object

Object d = true; 
d = 22; 
d = "hi"; 

et vous pouvez utiliser instanceof opérateur pour vérifier le type de données d tient

Object d = true; 
System.out.println(d instanceof Boolean); // true 
d = 22; 
d = "hi";  
System.out.println(d instanceof Integer); // false 
System.out.println(d instanceof String); // true 

The Type Comparison Operator instanceof

+2

L'utilisation de 'instanceof' est une odeur de code, qui provient généralement d'une analyse de type imparfaite, et a tendance à créer du code désordonné et bugué, sauf si vous savez ce que vous faites. –

+0

@Lew, vous avez 100% raison. Mais l'auteur posté rejette la question. –

+0

Je m'attendrais à une variable dynamique pour résoudre l'utilisation à l'exécution, comme 'dynamic' de C#. Autrement dit, 'd.foo()' vérifierait à l'exécution que 'd' a une méthode' foo'. – chris

1

typage dynamique est le mal si Java a évité ce . Comme Swift et C#, Java est fortement typé, ce qui conduit à un code plus sûr et plus propre. Alors, donnez-vous au Côté Obscur et mettez de côté vos voies rebelles. Embrasser la force de la programmation orientée type. Vous serez le meilleur pour ça.

+0

C# a 'dynamic' pour le typage dynamique. C'est utile dans certains scénarios spécifiques comme JSON et interagir avec COM. – chris

+0

Je suis d'accord, j'évite dynamique partout possible, j'aime l'approche fortement typée. J'avais juste besoin de le découvrir pour des cas exceptionnels. – shal

1

Vous pourriez envisager de mixer dans le langage groovy qui fonctionne sur la JVM. Cela a type inferrance

+0

Java possède l'inférence de type. L'inférence de type n'est pas un typage dynamique. L'inférence de type est une stratégie de typage fort. –