現在検証中のため後日また加筆することになると思いますが、
実際にそうなるので多分そうなんだろうと
まぁ、コンポーネントを外部参照可能にしている時点でどうなんだという事だろうと思うわけだが
JFrameに張り付いているJButtonをpublic化している
その状態で他のJFrameやクラスからこのボタンを参照する
その状態でボタンをJMyButtonとかにかえっちゃってみる
(もちろん、JButtonを継承)
で、*そのクラスだけを最新に置換する*
と実行時エラー NoSuchFieldError が発生する
何か全然しらないと フィールドが見えない ってエラーっぽいけど
実際には型違いなんだろう
なぜならば、元々JMyButton のボタンを JButton に変えると
何ら問題なく処理できるから
確か自動型変換しないのがJavaの特性ではなかったか
とはいえ、外部クラスの型を保持しているのね
そこがびつくりなんだが
外部クラスの型を保持しているがゆえに
勝手に外部クラスが型を変えてしまうと
型違いとか変な値になるとかじゃなくて NoSuchFieldError になるわけだ
実に分かり辛い
そんなわけで現在内部的に持っているであろう型が何なのか調べられないものか探索中
あとは仕様上にそんなソースがあるかどうか
「おめぇら、こういう仕様だから、外部公開気をつけろよ(゚Д゚)ゴルァ!!」
的な文章がどこかに無いだろうか
仕事先の人に説明しやすいので
全然理解できてないっぽいから
わかるけどね
単純にフィールドが公開されていないよ、とだけ捉えているぽい回答が回ってきた
型違い
怖いわ