每当 eclipse 中的源代码中缺少泛型时,它都会提示我“推断泛型类型参数...”
问题是我认为“推断通用类型参数...”实际上并没有推断出任何东西。它通常不会提出任何建议。
适用于哪些场景?它是如何工作的?
在一些情况下可以“推断”出某些东西 - eclipse 仍然是空白。
最佳答案
这是一个示例,展示了如何在 eclipse 中使用“推断通用类型参数”:
首先声明一个泛型类
// GenericFoo.java
public class GenericFoo<T> {
private T foo;
public void setFoo(T foo) {
this.foo = foo;
}
public T getFoo() {
return foo;
}
}
然后在不指定类型的情况下实例化它,并进行不必要的类型转换。
// GenericFooUsage.java before refactoring
public class GenericFooUsage {
public GenericFooUsage() {
GenericFoo foo1 = new GenericFoo<Boolean>();
foo1.setFoo(new Boolean(true));
Boolean b = (Boolean)foo1.getFoo();
}
}
应用“Infer Generic Type Arguments”后,代码重构为:
// GenericFooUsage.java after refactoring
public class GenericFooUsage {
public GenericFooUsage() {
GenericFoo<Boolean> foo1 = new GenericFoo<Boolean>();
foo1.setFoo(new Boolean(true));
Boolean b = foo1.getFoo();
}
}
那么“推断通用类型参数”的作用是:
- 自动推断通用参数的类型。
- 删除不必要的类型转换。
关于java - 如何在Eclipse中使用 "Infer Generic Type Arguments...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13641725/