java父对象_Java-访问对象的父对象,涉及泛型?

使用下面的代码,我得到一个编译错误“不兼容的类型 - 找到Tree但预期Tree”。任何想法我在做什么用泛型错了?除ParentObjectClass.this之外的任何其他方式访问对象的父对象?我意识到“解决方法”,比如向指向其父对象的Node类添加一个变量。另外,我可以将myInt作为构造函数参数传递,但我希望找到更好的解决方案。感谢您的任何建议。

我在这个网站上发现了一个类似的问题,但是我为我的代码尝试了它,但无法启动它:Access "this" from Java anonymous class。

public class Tree implements TreeIF {

private int myInt;

Node root;

...

// a constructor

public Tree(Node root) {

this(root.getTree().getMyInt()); // call to different constructor

this.root = root;

}

...

// a method

public int getMyInt() {

return myInt;

}

...

// inner class

class Node {

T element;

...

Tree getTree() {

// return Tree.this; // I tried this too, but it didn't work

**return Tree.this;** // HERE'S THE COMPILE ERROR

}

}

}感谢您的建议,乔恩。而且,是的,你说得对,Tree类的T与Node类相同。树实际上包含节点,节点包含元素。 Tree类已经知道它使用Node类,所以不需要类型参数。类型参数基本上是一个传递。我只是完全摆脱了Tree的类型参数,但是接口(我不能修改)在它的几个方法中返回T,所以它需要知道T是什么。我尝试改变为E并编译......我没有得到同样的错误,但是,我在另一部分中遇到了错误。我必须找出其他错误,然后看看会发生什么。同时,还有什么进一步的建议?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值