gpt4 book ai didi

java - 用作输出参数的自定义数字类

转载 作者:行者123 更新时间:2023-12-01 06:58:17 26 4
gpt4 key购买 nike

Java 中没有“out”或“ref”参数(我可能是错的,因为我已经 3 年没有接触过 Java 了)。我正在考虑创建类,如 MyInteger、MyFloat 和 MyDouble,用作输出参数。有没有一种方法可以将它们组合成一个通用类?

MyInteger 类的示例代码:

public class MyInteger
{
private int value = 0;

public int getValue(){ return value;}
public void setValue(int newValue) {value = newValue;}

}

编辑:

如何使用 MyInteger 类:

public boolean aMethod(int input, MyInteger output)
{
boolean status = true;
//calculation here;
//set status to false if anything wrong;
//if nothing wrong do this: output.setValue(newValue);
return status;
}

编辑2:

我要问的是我希望我可以将 MyInteger、MyFloat...组合成一个泛型类。

最佳答案

您可以使用 AtomicInteger、AtomicLong、AtomicReference 等。它们完全符合您的建议,并且作为一项附加功能,它们是高度线程安全的

<小时/>

并回应此评论:

but why there is no AtomicFloat and AtomicDouble

这就是 the java.util.concurrent.atomic package JavaDocs说:

Additionally, classes are provided only for those types that are commonly useful in intended applications. For example, there is no atomic class for representing byte. In those infrequent cases where you would like to do so, you can use an AtomicInteger to hold byte values, and cast appropriately. You can also hold floats using Float.floatToIntBits and Float.intBitstoFloat conversions, and doubles using Double.doubleToLongBits and Double.longBitsToDouble conversions.

我自己的看法:这听起来非常复杂,我会选择 AtomicReference<Double> , AtomicReference<Float>等等

关于java - 用作输出参数的自定义数字类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5805447/

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