java – 递归查找对象,找到后返回null
发布时间:2020-12-15 05:13:30 所属栏目:Java 来源:网络整理
导读:我已经创建了一个通过名称查找jcomponents的递归方法.此方法查找正确的组件,但它返回null.我猜我没有正确处理组件的返回和返回null.我怎样才能正常工作? 编辑:改为,我从下面的评论中理解.但它不会返回组件. public Component findComponent(String str,Com
我已经创建了一个通过名称查找jcomponents的递归方法.此方法查找正确的组件,但它返回null.我猜我没有正确处理组件的返回和返回null.我怎样才能正常工作?
编辑:改为,我从下面的评论中理解.但它不会返回组件. public Component findComponent(String str,Component tt){ for (Component c : ((Container) tt).getComponents()) { System.out.println("name: " + c.getName()); if(c.getName().equals(str)){ System.out.println("Found it! " + c.getName()); return c; } else { return findComponent(str,c); } } return null; } 这将立即停止.有一个组件没有组件,所以我猜它会立即停止并返回null? 如果我从findComponent(str,c)中删除返回值;控制台给出: name: titel name: l name: jpj name: jtx name: jpath Found it! jpath name: knapper name: k1 name: n1 name: k2 name: n2 name: k3 name: n3 name: jpp name: text name: jpe name: ta title是不包含任何组件的title.这是一个新问题吗? 解决方法
你的其他块应该是:
else { Component sub = findComponent(str,c); if (sub != null) return sub; } 否则,您将只检查您的第一个组件,只检查其第一个子组件,并且只检查第一个子组件,依此类推. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |