gpt4 book ai didi

java - 使用 try-catch over if 条件以在 java 中以最小的性能影响安全地设置值

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:54:48 24 4
gpt4 key购买 nike

在这里,我的主要目标是安全地设置值,而不会对性能(速度、内存、CPU 等)产生影响。

我有一个愚蠢的选择(风格不佳)也在下面提到。那么,最好的方法是什么?选项1?选项 2?还是另一个?

选项 1:

if(
animalData!=null &&
animalData.getBreedData()!=null &&
dogx.getBreed() != null && dogx.getBreed().getBreedCode() != null &&
animalData.getBreedData().get(dogx.getBreed().getBreedCode()) != null
){
dogx.getBreed().setBreedId(animalData.getBreedData().get(dogx.getBreed().getBreedCode()));
}

选项 2:

try{dogx.getBreed().setBreedId(animalData.getBreedData().get(dogx.getBreed().getBreedCode()));}catch(Exception e){}

注意:这段代码在一个有数千次迭代的循环中。

最佳答案

检查 null 是唯一符合 Java 异常哲学的选项。

NullPointerException是一个RuntimeException,这意味着它是为报告编程错误而设计的。这使得将它用于终止程序以外的任何事情都是一种极其糟糕的做法。

您可以通过存储对对象的引用以进行 null 检查来优化您的代码,以便您以后可以重用它们:

BreedData breedData;
DogBreed dogBreed;
String breedCode;
String breedId;
if( animalData != null
&& (breedData = animalData.getBreedData())!=null
&& (dogBreed = dogx.getBreed()) != null
&& (breedCode = dogx.getBreed().getBreedCode()) != null
&& (breedId = breedData.get(breedCode)) != null
) {
dogBreed.setBreedId(breedId);
}

关于java - 使用 try-catch over if 条件以在 java 中以最小的性能影响安全地设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44243646/

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