0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Object型について

Posted at

サーブレット、JSPでアプリ開発の学習中に疑問に思ったことを書きます。

サーブレットで生成したデータをJSPに連携させるときに、

例(Humanはクラスです)

Human h = (Human)request.getAttribute("human")

のような書き方をしてデータの取得を行います。
この”get.Attribute()”で取得するのはObject型になっています。

ここで疑問に思ったことが、HumanというクラスのObjectでキャストしていることです。

なぜObject型で取得した値をObjectにキャストしているのか分かりませんでした。

調べて何となく自分なりに答えを出したことを書きます。(間違っているかもしれません。)

クラスで作成したObjectはObject型を継承した子クラスだそうです。なのでクラスのObjectを生成すると、そのクラス固有のObjectとなるので
("Human h = new Human();)
#hはHumanクラスのObject→つまりHuman型となります。
だからObject型で取得した値をHuman型でキャストする必要があるらしいです。

これは普段使っていたキャストと少し似たところを見つけたのですが、
数値型のキャストの場合、(Double型→int型)
大きいデータ型から小さいデータ型に変換するときにキャストを行います。
Object型も一緒で、(Object型→Human型)
親クラスであるObject型を継承した子クラスHuman型に変換するときにキャストが必要であると考えられると思いました。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?