Java:第一次进入后对象循环停滞

时间:2012-02-17 21:27:48

标签: java for-loop

所以我有这段小代码:

System.out.println("Size: " + mounts.keySet().size());
for (JHttpPath entry : mounts.keySet()) {
    System.out.println("Got one: " + entry.getPath());
    if (entry.getDomain().equalsIgnoreCase(path.getDomain()) && entry.getPath().equalsIgnoreCase(path.getPath())) {
        System.out.println("WIN! " + entry.getPath());
        return mounts.get(entry);
    }
}

这是输出:

Size: 4
Got one: /host
但它应该是:
Size: 4
Got one: /host
Got one: /cookie
Got one: /
Got one: /

关于什么阻止声明的任何想法:P

2 个答案:

答案 0 :(得分:0)

显而易见的答案是,在打印一行之后执行的某个方法正在进入无限循环。从它的外观来看GetDomain()

也许如果我们对JHttpPath有更多了解?我认为这是一个自定义类,因为谷歌只在Googling JHttpPath时出现了这个问题。

答案 1 :(得分:0)

嗯,因为这是商业软件,我无法提供其中一个类 这看起来很像一个初学者的问题,但实际上很奇怪 问题:我使用的字符串.equals(IgnoresCase)被定义为NULL,这导致了一个异常,我的软件故意忽略它。
我的不好,感谢所有的投入。

解决方案代码:
(entry.getDomain() == null || path.getDomain() == null || entry.getDomain().equalsIgnoreCase(path.getDomain()))