Java-访问对象的父对象,涉及泛型?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java-访问对象的父对象,涉及泛型?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1531字,纯文字阅读大概需要3分钟。
内容图文
![Java-访问对象的父对象,涉及泛型?](/upload/InfoBanner/zyjiaocheng/719/d4720580929b4da989e27538e06bd816.jpg)
使用下面的代码,我得到一个编译错误“不兼容的类型 – 找到树< T>但预期树< T>”.知道我对仿制药做错了什么吗?有没有其他方法来访问ParentObjectClass.this以外的对象的父对象?我知道“变通办法”,比如向Node类添加一个指向其父对象的变量.此外,我可以传递myInt作为构造函数参数,但我想找到一个更好的解决方案.谢谢你的任何建议.
我在这个网站上遇到了一个类似的问题,但是我尝试了我的代码而无法让它工作:Access “this” from Java anonymous class.
public class Tree<T> implements TreeIF<T> {
private int myInt;
Node<T> root;
...
// a constructor
public Tree(Node<T> root) {
this(root.getTree().getMyInt()); // call to different constructor
this.root = root;
}
...
// a method
public int getMyInt() {
return myInt;
}
...
// inner class
class Node<T> {
T element;
...
Tree<T> getTree() {
// return Tree.this; // I tried this too, but it didn't work
**return Tree<T>.this;** // HERE'S THE COMPILE ERROR
}
}
}
谢谢你的建议,乔恩.并且,是的,你是对的,Tree类的T与Node类相同.树实际上包含节点,节点包含元素. Tree类已经知道它使用Node类,因此不需要类型参数. type参数基本上是一个传递.我只是完全摆脱Tree的类型参数,但是接口(我无法修改)在它的几个方法中返回T,所以它需要知道T是什么.我尝试更改为E并编译…我没有得到相同的错误,但是,我在另一部分遇到错误.我必须根除其他错误,然后看看会发生什么.同时,还有什么进一步的建议吗?
解决方法:
您已经引入了一个新的类型参数,也称为T.如果您更改了此参数:
class Node<T>
对此:
class Node<E>
错误会更清楚.但是,我怀疑你真的想要这个:
class Node
毕竟,节点的T实际上只是树的T,对吧?换句话说,你想要一个(比方说)Tree< String> .Node – 拥有一个Tree< String> .Node< Object>是没有意义的.
内容总结
以上是互联网集市为您收集整理的Java-访问对象的父对象,涉及泛型?全部内容,希望文章能够帮你解决Java-访问对象的父对象,涉及泛型?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。