我正在运行一些测试以更好地理解 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 建议要么将 Number 实例强制转换为 O,要么在第 9 行将参数类型更改为 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 行带来了一个新问题。
那么我的原始代码可以做什么呢?
感谢您的时间!!!