gpt4 book ai didi

Java DefaultMutableTree 不兼容的类型

转载 作者:行者123 更新时间:2023-12-04 05:21:43 24 4
gpt4 key购买 nike

一直在网上寻找答案,但还没有找到任何东西。
我创建了以下方法

public void process(DefaultTreeModel tree){
DefaultMutableTreeNode current = tree.getRoot();
}

但是,编译器会抛出不兼容的类型错误。
这棵树是通过从我自己的类中创建 DefaultMutableTreeNodes 来创建的,然后将它们添加到 DefaultMutableTree (经过测试并且工作正常)。

我不确定为什么类型不兼容,因为当我运行以下
public void process(DefaultTreeModel tree){
Object o = tree.getRoot();
System.out.println(o.getClass());
}

它输出:
class javax.swing.tree.DefaultMutableTreeNode

非常感谢所有帮助!

最佳答案

DefaultTreeModel调用 getRoot() 时返回一个对象。编译器没有关于它在运行时是什么类型的信息,所以它假定它是一个对象并且不能将它转换为 DefaultMutableTreeNode。

即使它在运行时是正确的类,它在编译时也无法知道这一点。您必须使用 instanceof 来检查它

Object o = tree.getRoot();
if(o instanceof DefaultMutableTreeNode) {
DefaultMutableTreeNode root = (DefaultMutableTreeNode)o;
...
}

关于Java DefaultMutableTree 不兼容的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13614630/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com