ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

privateメンバーへアクセスする為のキャスト

2012-05-20 23:59:56 | PG(Java)

kmizuさんのエラーの例の意味が最初分からなかった。
(lessThanというメソッド名なのに==で判定しているのがおかしいのかな?と思ったけど、そこは本題ではなかった) 

cocoa_rutoさんのツイートで可視性に言及されていて、ようやく意味が分かった。
つまり、“自分を継承したサブクラス”として宣言した変数では、自分のprivateメンバーにアクセスできない。わざわざ自分自身にキャストしてやればアクセスできるようになる。 

kmizuさんのソースでは、型TはFooを継承したサブクラスとなっている。(ジェネリクスのextends
なので、Tの変数fooでは、FooのprivateメンバーであるaValueにアクセスできない(foo.aValueが不可視であり、コンパイルエラーになる)

うーん、こんな可視性の問題があったんだなぁ。Javaでもまだまだ知らない事が多い。 


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Javaの例をScalaに変換して説... | トップ | AsakusaFW0.2.6の見どころ »
最新の画像もっと見る

コメントを投稿

PG(Java)」カテゴリの最新記事