2016-10-27 5 views
0

我々は明らかにある型から別の型へ変数を再宣言できますか(intからStringなど)?

int tmpVar; 
tmpVar=myClass.getInt(); 
myClass.giveImput(tmpVar); 

String tmpVar; //<<--gives error "Variable 'tmpVar' already defined in this scope" 
tmpVar=myClass.getString(); 
myClass.giveImput(tmpVar); 

ような何かを行うことができれば、私はちょうど興味があった私は、文字列のための新しいVaRの名前を使用しますが、私は興味があったし、これが可能である場合、オンラインで何かを見つけることができませんでした。

PsがIは、上記の例は

myClass.giveImput(myClass.getInt());myClass.giveImput(myClass.getString()); 
+2

同じ方法ではありません。別々のスコープを持つ場合、そうすることができます。それぞれは別のブロックにあります。なぜあなたはこれをしたいのですか? –

+0

ちょうど興味があり、現在のブロックの外側にある一度はvarが存在しないようになります –

+0

'可能であれば、オンラインで何も見つかりませんでした。 – njzk2

答えて

0

多くの理由でJavaでは不可能です。まず第一に、は厳密に型付けされたプログラミング言語なので、どのような場合でも変数の型を変更することはできません。したがって、宣言の型とは異なる変数に値を代入することはできません。

EDIT

しかし、彼らは同じスコープにない場合は、同じ名前と異なる型宣言で変数を使用することができます。この場合、それらは異なる位置に割り当てられた2つの異なる変数です。

+0

と言われていますOPが求めているのは、「強く型付けされた」Javaとは何の関係もありません。あなたは静的型チェックを参照してください?)。 Javaでは、同じ名前の2つの変数を宣言することはできません。 (両方ともintであっても 'int a; int a'を宣言することは許されません) – njzk2

+0

@ njzk2タイトルを読んでください:「あるタイプから別のタイプへ変数を再宣言できますか?だから、私の反応は静的なタイプのチェックだけでした。私の返信を変更しました –

+0

いいえ。なぜなら、 "再宣言"することができないということは、同じスコープ内で(どのタイプの変数であっても関係ない)変数がすでに宣言されていることを検証するためです。型宣言は変数宣言には関係しません。 (変数定義のみ) – njzk2

0

ハズレに短縮することができる知っています。

オブジェクト/クラスまたはスーパークラスの関数またはプロパティのローカル変数であるかどうかにかかわらず、別のスコープを使用する必要があります。

関連する問題