我可以在Java中通过引用传递基元类型吗?

我想调用一个可能采用不同版本的方法,即对于类型的输入参数使用相同的方法:

  • 布尔
  • 字节
  • 整型

我想这样做的方法是通过“重载”方法(我认为这是正确的术语?):

public void getValue(byte theByte) {...}
public void getValue(short theShort) {...}
... etc ...

...但这意味着我必须通过引用传入基元类型...类似于C++方法具有外部影响,可以在其范围之外修改变量。

有没有办法在不创建新类或使用基元类型的 Object 版本的情况下执行此操作?如果没有,对替代策略有什么建议吗?

让我知道我是否应该进一步解释以消除任何混淆。


更新

我实际上试图做的是从一组位构造基元类型。因此,如果我正在处理该方法的字节版本,我想做我的工作来获取8位并返回字节(因为我无法通过引用传递)。

我问这个问题的原因是因为我用位所做的工作非常重复,我不想在不同的方法中使用相同的代码。所以我想为我的ONE方法找到一种方法来知道我所说的有多少位......如果我使用一个字节,那么8位,如果我使用一个短的,16位,等等......


答案 1

Java 始终是按值传递的。Java 中没有按引用传递。它写在规格中


答案 2

虽然Java支持重载,但所有参数都是按值传递的,即分配方法参数对调用方不可见。

从代码片段中,您正在尝试返回不同类型的值。由于返回类型不是方法签名的一部分,因此不能使用不同的返回类型进行重载。因此,通常的方法是:

int getIntValue() { ... }
byte getByteValue() { ... }

如果这实际上是一次转换,则标准命名为

int toInt() { ...}
byte toByte() { ... }