2017-03-09 13 views
5

, Haxe I kesinlikle yazdınız oluşturabilirsiniz değişkenleri: var a:Float = 1.1; veya var b:String = "hello" ve ayrıca dinamik, gerekirse:Java'da dinamik değişkenler nasıl oluşturulur? Örneğin

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

Nasıl Java değişkenlerin bu tür oluşturabilirim?

+1

'Nesne 'ne aradığınızı düşünüyorum. –

cevap

11

Sen Object

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

kullanabilir ve Java bunu eschewed çok şeytanca

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

'instanceof' kullanımı, genellikle hatalı bir türden analizden geçen bir kod kokusu ve ne yaptığınızı bilmedikçe dağınık, engebeli kod oluşturma eğilimindedir. –

+0

@Lew,% 100 doğru sizsiniz. Ancak yayınlanan anwser, soruyu tekrarlar. –

+0

C# 'nin 'dinamik' gibi çalışma zamanında kullanımı çözmek için dinamik bir değişken beklerim. Yani, d.foo(), 'd'' foo' yöntemine sahip çalışma zamanında kontrol eder. – chris

1

Dinamik yazarak düzenliyor verilerin d türünü kontrol etmek instanceof operatörünü kullanabilirsiniz . Swift ve C# gibi, Java da daha güvenli ve daha temiz kodlara yol açacak şekilde yazılmıştır. Öyleyse Karanlık Taraf'a verin ve isyancı yollarınızı bir kenara koyun. Tip yönelimli programların gücünü benimseyin. Bunun için daha iyi olacaksın.

+0

C#, dinamik yazım için 'dinamik'e sahiptir. JSON gibi bazı özel senaryolarda ve COM ile etkileşimde yararlıdır. – chris

+0

Katılıyorum, mümkün olan her yerde dinamik olmaktan kaçınıyorum, güçlü bir şekilde yazılmış yaklaşımı seviyorum. Bazı istisnai durumlar için bunu öğrenmek zorundaydım. – shal

1

JVM'de çalışan groovy dilinde karıştırmaya bakabilirsiniz. Bu tür inferrance

+0

Java'nın bir türü var. Yazım türü dinamik yazım değildir. Yazım tipi, güçlü yazım için bir stratejidir. –