gpt4 book ai didi

java 在方法返回后在 if 语句中调用命令

转载 作者:行者123 更新时间:2023-12-02 06:19:58 25 4
gpt4 key购买 nike

我有一个方法:

public long getAppropriatePMStyleId(Office office, KMLFolder kmlFolder) {
Long id = null;
KMLFolder folderForStyle = kmlFolder;
if (kmlFolder.getParentKMLFolderId() != null) {
folderForStyle = kmlFolderServiceImpl.find(kmlFolder.getParentKMLFolderId());
getAppropriatePMStyleId(office, folderForStyle);
} else {
id = Long.parseLong(folderForStyle.getId());
}
return id;
}

我通过调试器观察到该方法可以正常工作,直到遇到 else 情况。执行此操作时,传递到该方法的 kmlFolder 的 id 会在调试器面板中分配。但是,当我进入 return id 语句突出显示的位置时,应用程序会转到 getAppropriatePMStyleId(office,folderForStyle); 行并抛出一个空指针。该方法仅在应用程序中的一个位置调用,因此我认为不会从外部再次调用它。是否有一些我不理解的 Java 行为?

最佳答案

if block 中,您进行递归调用,但不对它返回的内容执行任何操作。您最终返回 id;,但 id 被初始化为 null

也许您想返回递归调用返回的内容:

id = getAppropriatePMStyleId(office, folderForStyle);

以便return id;返回正确的ID。

关于java 在方法返回后在 if 语句中调用命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21098401/

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