2017-03-09 6 views
5

Javaで動的変数を作成する方法は?必要に応じて、 <code>var a:Float = 1.1;</code>または<code>var b:String = "hello"</code>ともダイナミック:<a href="https://haxe.org/" rel="nofollow noreferrer">Haxe</a>に私は厳密に型指定された変数を作成することができる。例えば

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

どのように私は、Javaの変数のこのようなものを作成するのですか?

+1

'Object'私はあなたが探しているものだと思います。 –

答えて

11

あなたはObject

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

使用することができますし、Javaがそれを避けて悪である

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'の使用は、コードの匂いです。通常、欠陥のある型分析から逃げ出しています。あなたが何をしているのか分からない限り、乱雑でバグの多いコードを作成する傾向があります。 –

+0

@Lew、あなたは100%正しいです。しかし、投稿されたanwserは質問を再生します。 –

+0

私はC#の '動的'のように、動的変数が実行時に使用法を解決すると期待します。つまり、 'd.foo()'は実行時に 'd'が' foo'メソッドを持っているかどうかをチェックします。 – chris

1

動的型付け保持しているデータdの種類をチェックするためにinstanceof演算子を使用することができます。 SwiftとC#のように、Javaは強く型付けされているので、より安全できれいなコードになります。だからダークサイドに入れて、あなたの反逆の道を離れてください。タイプ指向プログラミングの力を受け入れます。あなたはそれの方が良いでしょう。

+0

C#は動的型付けのために 'dynamic'を持っています。これは、JSONやCOMとのやりとりなどの特定のシナリオで便利です。 – chris

+0

私は同意する、私は可能な限りどこでも動的を避ける、私は強く型付けされたアプローチが大好きです。私はちょうど例外的な場合についてそれについて調べる必要がありました。 – shal

1

JVMで動作するGroovy言語でミキシングすることができます。これは型の推測を持っています

+0

Javaには型推論があります。型推論は動的型付けではありません。型推論は強い型付けの戦略です。 –

関連する問題

 関連する問題