繁体   English   中英

Java中两个不同类中的相同泛型类型

[英]Same generic type in two different classes in Java

我有两个不同的班级:

class A<K,V> {
  B b = new B;

  public V get(K k) {
     return b.get(k);
  }
}

class B<K,V> {
  V v;

  public V get(K k) {
     return v;
  }
}

我在类A的get方法中收到一个不兼容的类型错误。

这是否意味着A类的V型与B类的V型不同? 在这种情况下,如何解决此问题? 我可以在返回之前简单地将其转换为V吗?

A使用V进行参数化B 这样,编译器可以确保您的类B将返回类型V的对象。

class A<K,V> {
  B<K,V> b = new B<K,V>;

  public V get(K k) {
     return b.get(k);
  }
}

更改B b = new B; 在类AB<K,V> b = new B<>();

这可以确保通过引用的类型KV的定义中B用于可变b匹配了那些的定义内A

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM