我想知道为什么我的接口方法返回一个对象类型而不是我声明的firebase类型:下面的代码
Public Interface IDatabase<T> {
public T getDatabaseRef(String reference)
public Database implements IDatabase<Firebase>{
public Firebase getDatabaseRef(String reference){
.....
return databaseRef;
如何初始化数据库
IDatabase database = new Database(..)
当我调用方法时
Firebase reference = database.getDatabaseRef();
我得到了不兼容的类型:必需:Firebase,Found:java.lang.object
我将firebase声明为IDatabase实现中的通用值。 它不应该返回一个firebase值吗?
答案 0 :(得分:5)
当您使用原始泛型类型(即没有<SomeType>
)时,它们默认为其上限。在您的情况下,这是java.lang.Object
。
这是正确的:
IDatabase<Firebase> database = new Database(..);