Java:用什么声明变量?扩展类
我有以下问题。我有一个接口Java:用什么声明变量?扩展类,java,generics,Java,Generics,我有以下问题。我有一个接口 public interface A<T extends B> { T getObject(); } 公共接口A { T getObject(); } 我有一个类使用这个接口: public void test() { A<B> a; B b = a.getObject(); } 公共无效测试() { A A; B=a.getObject(); } 这会导致编译错误,因为返回的对象是B,而不是扩展B。 我可以用什么方法声明
public interface A<T extends B>
{
T getObject();
}
公共接口A
{
T getObject();
}
我有一个类使用这个接口:
public void test()
{
A<B> a;
B b = a.getObject();
}
公共无效测试()
{
A A;
B=a.getObject();
}
这会导致编译错误,因为返回的对象是B,而不是扩展B。
我可以用什么方法声明变量b吗
谢谢,
Gertrude您使用原始类型
a
而不是a
有什么原因吗?您使用的是原始类型a
,不要这样做。如果您不知道t
,请改用A
。。。那么,万一你还想知道发生了什么。。。阅读并相应地强化你的问题。此时,我猜想您只是缺乏java泛型方面的知识。如果您在未初始化a的情况下调用.getObject(),则会出现一个编译器错误,局部变量a可能尚未初始化。
。请浏览此链接-。根据您共享的代码,不会导致您提到的错误。除非您提供了实现getObject()的代码,并且提供了对象a的实现,否则很难用提供的代码回答问题。