Java的.如何返回广义对象?

Ser*_*kov 0 java generics android

我上课了

public class Product {
...
}
Run Code Online (Sandbox Code Playgroud)

public class Phone extends Product {
...
}
Run Code Online (Sandbox Code Playgroud)

我想返回一个通用对象.现在我尝试:

public <T extends Product> T getProduct()
{
   return new Phone();
}
Run Code Online (Sandbox Code Playgroud)

但编译器给我错误:

Incompatiple types :
Required : T
Found : Phone
Run Code Online (Sandbox Code Playgroud)

怎么了?我怎么解决这个问题?

Pan*_*mar 5

通用回报?如果您正在寻找可以适用于Product的所有子类型的返回类型,那么这应该可行.

public Product getProduct() {
   return new Phone();
}
Run Code Online (Sandbox Code Playgroud)