2017-03-09 6 views
5

Zum Beispiel in Haxe kann ich streng typisierte Variablen erstellen: var a:Float = 1.1; oder var b:String = "hello" und auch dynamisch, wenn nötig:Wie erstellt man dynamische Variablen in Java?

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

Wie erstelle ich diese Art von Variablen in Java?

+1

'Objekt' Ich denke, was Sie suchen. –

Antwort

11

können Sie verwenden Object

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

und Sie können instanceof Operator prüfen, welche Art von Daten d hält

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

Die Verwendung von 'instanceof' ist ein Code-Geruch, der normalerweise von einer fehlerhaften Typanalyse herrührt und dazu neigt, unordentlichen, fehlerhaften Code zu erstellen, wenn Sie nicht wissen, was Sie tun. –

+0

@Lew, du bist zu 100% korrekt. Aber der gepostete Antworter wiederholt die Frage. –

+0

Ich würde erwarten, dass eine dynamische Variable die Verwendung zur Laufzeit auflöst, wie C# ''dynamic'. Das heißt, 'd.foo()' würde zur Laufzeit prüfen, dass 'd' eine' foo' Methode hat. – chris

1

Dynamische Typisierung ist das Böse so Java es gemieden . Wie Swift und C# ist Java stark typisiert, was zu einem sichereren und saubereren Code führt. Also gib der Dunklen Seite nach und leg deine Rebellenwege beiseite. Umfassen Sie die Kraft der typorientierten Programmierung. Du wirst dafür umso besser sein.

+0

C# hat "dynamisch" für dynamisches Tippen. Es ist nützlich in bestimmten Szenarien wie JSON und Interaktion mit COM. – chris

+0

stimme ich zu, ich vermeide Dynamik überall möglich, ich liebe stark typisierten Ansatz. Ich musste es nur für einige Ausnahmefälle herausfinden. – shal

1

Sie könnten das Mischen in der groovigen Sprache betrachten, die auf der JVM läuft. Dies hat Typ Inferrance

+0

Java hat Inferenz. Typinferenz ist keine dynamische Typisierung. Typinferenz ist eine Strategie für starke Typisierung. –

Verwandte Themen