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的实现,否则很难用提供的代码回答问题。