gpt4 book ai didi

java - 按需创建 Java 对象

转载 作者:行者123 更新时间:2023-12-02 10:20:58 27 4
gpt4 key购买 nike

我有一个java私有(private)方法,我试图找到在该方法内创建对象的最佳方法。以下是我正在尝试的两种不同方法:

方法A:

 private void createObject() {
Object A;
if (conditionA) {
A = new Object();
//do some Action X with object A
} else {
//Do something without object A
if (conditionB) {
return;
}
A = new Object();
//do some Action Y with object A
}
return;
}

方法B:

 private void createObject() {
Object A = new Object()
if (conditionA) {
//do some action X with Object A
} else {
//Do something without Object A
if (conditionB) {
return;
}
//do some action Y with Object A
}
return;
}

显然这两个代码片段都可以工作并且没有任何问题。我只是想找出更好的编码风格和标准。

最佳答案

让我们写出真值表

  A  |   B   |      Expected Outcome               
-----+-------+-------------------------------
True | True | do X with object A
True | False | do X with object A
False| False | do Y with object A
False| True | do something without object A
-----+-------+-------------------------------

我认为这可以翻译为:

boolean doXWithA = conditionA;
boolean doYWithA = !conditionA && !conditionB;
boolean doSomethingWithA = doXWithA || doYWithA;
if(doSomethingWithA)
Object a = new Object();
if (doXWithA) {
// do X with object A
} else if (doXWithB) {
// do X with object B
}
} else {
// do something without object A
}

好的做法是尽可能缩小变量的范围。如果实例化的成本很高,您还希望减少实例化的次数。这里对象a仅在必要时初始化,并且其范围尽可能小(只有一个if block )

关于java - 按需创建 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54342603/

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