Java中多原语参数的主方法

Java中多原语参数的主方法,java,methods,parameters,primitive-types,Java,Methods,Parameters,Primitive Types,假设我有以下方法: public void doSomethingInteger(int i){...} public void doSomethingByte(byte b){...} public void doSomethingFloat(float f){...} public void doSomethingDouble(double d){...} 它们都执行相同的操作,只接受不同格式的变量 是否有一种方法可以编写一个我可以从这些方法中调用的方法,而不是重写每个方法的代码以使用不同

假设我有以下方法:

public void doSomethingInteger(int i){...}
public void doSomethingByte(byte b){...}
public void doSomethingFloat(float f){...}
public void doSomethingDouble(double d){...}
它们都执行相同的操作,只接受不同格式的变量


是否有一种方法可以编写一个我可以从这些方法中调用的方法,而不是重写每个方法的代码以使用不同的变量?

您可以使用casting。您可能希望将实现放在
doSomethingDouble()
中。然后,您可以将其他方法定义为:

public void doSomethingInteger(int i) {doSomethingDouble((double)i;}
public void doSomethingByte(byte b) {doSomethingDouble((double)b;}
public void doSomethingFloat(float f) {doSomethingDouble((double)f;}
这些都是,所以你不会丢失任何信息

5.1.2。扩大原语转换

19基元类型上的特定转换称为 原语转换:

**byte to** short, int, long, float, or **double**

short to int, long, float, or double

char to int, long, float, or double

**int to** long, float, or **double**

long to float or double

**float to double**
加宽基元转换不会丢失有关 数值的总大小

从一个整型到另一个整型的扩展原语转换 整数类型,或在strictfp表达式中从float到double (§15.4),不会丢失任何信息;数值为 完全保留下来

你可以直接写

void doSomething(double d) {

所有其他数字类型
byte、short、char、int、long、float将扩展为
double

详细信息可能取决于您未向我们展示的代码。我们不知道你的方法应该做什么,所以根据目前发布的信息,我想我们中没有人能够帮助你。谢谢你,我不确定double是否能够容纳所有其他原语!这里不需要强制转换。@user3718550所有那些转换为双精度的转换都是加宽转换,所以没有问题。“不丢失信息”是错误的--
long
to
double
2^53
以上的值上丢失精度。关键的短语是“总体大小”,但小的比特会失去精度。@LouisWasserman没有人在谈论从长到双的转换。只有int,byte,float到double。