09/12/25 12:07:46
>>721
例えば↓こんな感じのサンプルプログラムで Component クラスの
getSize()メソッドのオーバライドをしてみたけど、
こちらの環境では、 getSize()メソッドについて、 >>716 の操作をすると、
階層ビューには Button クラスがちゃんと出てくるよ。
というか、ビルドパスをいじらない状態
(Sample01 を実行してもjava.awt.Dimension[width=0,height=0]
と表示される=オリジナルのButton クラスが呼ばれている)
でも、階層ビューの挙動は同じだったので、逆に、
どうやれば表示されないようになるのかわからない。
あるいは、上記のように、ワークスペース上に存在するソースが
優先される(これは他所のプロジェクトを越えて影響があるようだ)ということは、
その「JRE改編用に1つプロジェクト」で、オーバライドしているはずのクラスを、
オーバライドしない記述に書き換えてしまっていて、それが優先されているために、
オリジナルの JRE 上でオーバライドしているクラスが見つからないのかもしれない。
--- Sample01.java ----
import java.awt.Button;
public class Sample01 {
public static void main(String[] args) {
System.out.println( new Button().getSize() );
}}
--- Button.java ---- (置き換えクラス)
package java.awt;
public class Button extends Component {
public Dimension getSize() {
return new Dimension(100,100);
}}