- ベストアンサー
Javaでの型宣言について
はじめまして。 初投稿となります。 最近Javaの学習をはじめたのですが、 疑問があります。 Javaでは型の宣言を曖昧にすることってできますか? ActionScriptで例えると var obj:*; というように、 明示的に型宣言するのではなく、 汎用的に変数を扱うことはできますか? ご教授お願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
できない。 Javaは、「静的型付け」といって、コンパイル時にすべての値の型が確定していなければならない。例に挙げたようなものは「動的型付け」といって、実行時に型を確定して動くようなもの。Javaのような静的型付けの言語では、型をあいまいにしておくことはできない。
その他の回答 (2)
- Tacosan
- ベストアンサー率23% (3656/15482)
純粋に「変数に値を格納するだけ」でいいなら #1 でいわれるようにクラスObject を使えば OK. 今だとボクシングが自動で行われるので値型に対しても使える. ただし「格納するだけ」なので, その値を使って実際に何か処理をしようというときには「実際の型」が必要になるので, 毎回キャストすることになります.
お礼
> 純粋に「変数に値を格納するだけ」でいいなら #1 でいわれるようにクラス > Object を使えば OK. 今だとボクシングが自動で行われるので値型に対しても > 使える. > ただし「格納するだけ」なので, その値を使って実際に何か処理をしようというと > きには「実際の型」が必要になるので, 毎回キャストすることになります. 今は格納する際に疑問に思い、ここへ質問しました。 実際処理をするときが来ましたら、 毎回キャストするということを覚えておきます。 ありがとうございました。
- 20203
- ベストアンサー率60% (3/5)
Objectクラスはすべてのクラスのスーパー(上位)クラスなので, Object obj; と宣言すれば変数objはどんな型へも参照することができます.
お礼
> Objectクラスはすべてのクラスのスーパー(上位)クラスなので, > Object obj; > と宣言すれば変数objはどんな型へも参照することができます. そうなんですか。 Object型は万能なんですね。 ありがとうございます。
お礼
> Javaは、「静的型付け」といって、コンパイル時にすべての値の型が確定して > いなければならない。例に挙げたようなものは「動的型付け」といって、実行時 > に型を確定して動くようなもの。Javaのような静的型付けの言語では、型をあ > いまいにしておくことはできない。 すみません。 私の勉強不足でした。 もっとJavaのことを理解した上で 学習を進めようと思ういます。 ありがとうございました。