gpt4 book ai didi

android - Return 语句返回 null 而不是给定值

转载 作者:行者123 更新时间:2023-11-30 01:56:04 26 4
gpt4 key购买 nike

我正在编写一个 Android 应用程序,遇到了一个非常奇怪的错误,我无法解决这个问题。在下面的代码中,变量“result”根据不同的条件填充了值。然后它应该被退回。在调试器中,可以看到结果的值设置正确。然而,当到达 return 语句时(根据调试器,此时结果具有正确的值)该方法确实返回 null 而不是结果中的值。我还尝试清理项目并在另一台机器上编译代码,结果相同。我无法想象这里出了什么问题,但在我看来,编译过程中出现了问题。

我在 Windows 10 机器上使用 64 位 jdk1.7.0_79,并在 Nexus 7 (2012) Emulator 和 Android Studio 版本 1.3.1 上运行代码

非常感谢您的提前帮助。

 private static WikiItemContainer getMappingForIntermediateThrowEvent(IntermediateThrowEvent intermediateThrowEvent, List<WikiItemContainer> eventContainers) {
WikiItemContainer result = null;
List<EventDefinition> eventDefinitions = intermediateThrowEvent.getEventDefinitions();
if (eventDefinitions.isEmpty()) {
result = new WikiItemContainer(eventContainers.get(0).getItems().get(1));
} else if (eventDefinitions.size() > 1) {
result = new WikiItemContainer(eventContainers.get(10).getItems().get(6));
} else {
EventDefinition definition = eventDefinitions.get(0);
if (definition instanceof MessageEventDefinition) {
result = new WikiItemContainer(eventContainers.get(1).getItems().get(6));
} else if (definition instanceof EscalationEventDefinition) {
result = new WikiItemContainer(eventContainers.get(3).getItems().get(4));
} else if (definition instanceof LinkEventDefinition) {
result = new WikiItemContainer(eventContainers.get(5).getItems().get(1));
} else if (definition instanceof CompensateEventDefinition) {
result = new WikiItemContainer(eventContainers.get(8).getItems().get(2));
} else if (definition instanceof SignalEventDefinition) {
result = new WikiItemContainer(eventContainers.get(9).getItems().get(6));
}
}
return result;
}

最佳答案

有一种情况result为空:

 private static WikiItemContainer getMappingForIntermediateThrowEvent(IntermediateThrowEvent intermediateThrowEvent, List<WikiItemContainer> eventContainers) {
WikiItemContainer result = null;
List<EventDefinition> eventDefinitions = intermediateThrowEvent.getEventDefinitions();
if (eventDefinitions.isEmpty()) {
result = new WikiItemContainer(eventContainers.get(0).getItems().get(1));
} else if (eventDefinitions.size() > 1) {
result = new WikiItemContainer(eventContainers.get(10).getItems().get(6));
} else {
EventDefinition definition = eventDefinitions.get(0);
if (definition instanceof MessageEventDefinition) {
result = new WikiItemContainer(eventContainers.get(1).getItems().get(6));
} else if (definition instanceof EscalationEventDefinition) {
result = new WikiItemContainer(eventContainers.get(3).getItems().get(4));
} else if (definition instanceof LinkEventDefinition) {
result = new WikiItemContainer(eventContainers.get(5).getItems().get(1));
} else if (definition instanceof CompensateEventDefinition) {
result = new WikiItemContainer(eventContainers.get(8).getItems().get(2));
} else if (definition instanceof SignalEventDefinition) {
result = new WikiItemContainer(eventContainers.get(9).getItems().get(6));
}


// What value will result have here if none of the if statements above are entered?

}
return result;
}

关于android - Return 语句返回 null 而不是给定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32192195/

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