2016-10-25 5 views
0

私はプログラミングに熟練していないので、これは意味をなさないとすみませます。とにかく:データ型のデータ型はありますか? これはので、ここで1がそれを使用することができる方法の例ですが、本当に奇妙に聞こえる:それは、Showerthought:データ型のデータ型ですか?

DataType dt = new DataType("int"); 
dt i = 3; 
double d = 5; 
int castedD = (dt) d; 

など

本家の私は、コンパイラかなり確信している構文のこの種を不可能にする(またはインタプリタ?)私の意見ではかなり興味深い考えです。 同様のことは既に存在しますか?申し訳ありませんが、これは意味をなさない場合、私はちょうどこれが愚かか良いアイデアかどうか疑問に思っていた。 :)

+2

['Class'](http://docs.oracle.com/javase/8/docs/api/java/lang/Class .html); (明らかに)あなたはあなたが望むものすべてを行うことはできません。 –

答えて

2

Javaではそれが可能ではありません。

  • Java言語仕様では、型名と変数名は異なる名前空間から取得されていると記述されています。したがって、あなたのサンプルコードは、実際にはという名前で、コンパイラの名前がdtのクラスを探すように指示します。

  • この種のことが許された場合、Javaはもはや静的型付きプログラミング言語ではなくなります。

今、あなたは反射が、コードを使用してJavaでこの種のものを行うことができます(ファンタシー)コードのようにエレガントなようにどこにもありません。これは、従来のJavaコードよりも桁違いに(またはそれ以上)遅く、コンパイラがエラーチェックの方法をほとんど提供しないため、はるかに脆弱です。


私は変数がそのようなタイプとして使用することができます任意の主流のプログラミング言語(静的または動的なタイプ)を考えることはできません。あなたが知っているとコメントしてください....