Java 在多个类中使用相同的通配符类型
我想这样做:Java 在多个类中使用相同的通配符类型,java,generics,Java,Generics,我想这样做: public class Tree<A extends Ability>{ ... } 公共类树{ ... } 在树中,我想使用从能力继承的对象。该树由节点组成,这些节点作为有效负载具有以下能力: public class Node<A extends Ability>{ public A getAbility(){ ... } ... } 公共类节点{ public A getAbility(){…} ... } 如果我尝试在
public class Tree<A extends Ability>{
...
}
公共类树{
...
}
在树中,我想使用从能力继承的对象。该树由节点组成,这些节点作为有效负载具有以下能力:
public class Node<A extends Ability>{
public A getAbility(){ ... }
...
}
公共类节点{
public A getAbility(){…}
...
}
如果我尝试在树的某个方法中使用,例如搜索,我会得到一个错误:
public void read(){
Node node = searchForTheNode(...);
node.getAbility(); // <- this gives me an error
}
public void read(){
Node Node=searchForTheNode(…);
node.getAbility();//试试这个:node node=searchForTheNode(…);
如果树和节点类是分开的,那么“A”不一定是同一件事。如果您正在编写树和节点。我会将节点嵌套在树中:
class Tree<A extends Ability> {
static class Node {
A method() {
A a = null;
return a;
}
}
}
类树{
静态类节点{
A方法(){
A=零;
返回a;
}
}
}
通过这种方式,您可以约束一次“A”,而节点和树引用的“A”是相同的类型。不幸的是,这不起作用。错误是:“无法访问“package.Tree”中的“A”