Sag*_*thu 0 java variables primitive type-conversion
我想知道我的类中的变量类型,例如:
int x=1;
char c=5;
System.out.println(x+c);// out put is 6
Run Code Online (Sandbox Code Playgroud)
但我想知道它的类型x+c
,是否属于integer
或character
?并且还想在控制台中打印结果.
有没有找到类型的方法?请帮我解决最好的答案.
有没有找到类型的方法?
那么,从研究的角度来看,您可以阅读Java语言规范.特别是,第15.18.2节解释了+
操作员的工作原理.
如果您只想从执行时的角度来看,有两种选择:
你可以自动装箱,然后看看盒装类型是什么:
Object o = x + c;
System.out.println(o.getClass()); // java.lang.Integer
Run Code Online (Sandbox Code Playgroud)您可以编写一个为所有基本类型重载的方法,并查看编译器选择的方法:
System.out.println(getCompileTimePrimitiveClass(x + c));
...
private static Class getCompileTimePrimitiveClass(int x)
{
return int.class;
}
private static Class getCompileTimePrimitiveClass(char x)
{
return char.class;
}
private static Class getCompileTimePrimitiveClass(byte x)
{
return byte.class;
}
// etc
Run Code Online (Sandbox Code Playgroud)