0

Javaジェネリックメソッドをよりよく理解するためにいくつかのテストを実行していますが、次の問題に遭遇しました。私は次の単純なクラスを持っています:

1    public class SomeClass<O extends Object> {
2    
3        O someVar;
4    
5        public SomeClass() {
6           someFunc(new Number(1));
7        }
8    
9        public void someFunc(O arg) {
10           // code
11        }
12    }

現状では、コンパイラは 6 行目を好みません。Eclipse は、9 行目で Number インスタンスを O にキャストするか、引数の型を Number に変更することを提案しています。可能であれば両方を避けたいと思います。 クラスを次のように変更すると、この問題が解決されることを知っています。

1    public class SomeClass {
2    
3        O someVar;
4    
5        public SomeClass() {
6           someFunc(new Number(1));
7        }
8    
9        public <O extends Object> void someFunc(O arg) {
10           // code
11        }
12    }

しかし、これは 3 行目に新たな問題をもたらします。

私の元のコードで何ができるでしょうか?

お時間をいただきありがとうございます!!!

4

3 に答える 3