如何在Java中检查变量的类型?
2022-08-31 07:25:35
如何检查以确保我的变量是int,数组,双精度等?
编辑:例如,如何检查变量是否为数组?有没有一些功能可以做到这一点?
如何检查以确保我的变量是int,数组,双精度等?
编辑:例如,如何检查变量是否为数组?有没有一些功能可以做到这一点?
Java是一种静态类型语言,因此编译器会为您完成大部分检查。将变量声明为特定类型后,编译器将确保仅为其分配该类型的值(或该类型的子类型的值)。
您给出的示例(,数组,)这些都是基元,并且没有它们的子类型。因此,如果将变量声明为 :int
double
int
int x;
您可以确定它只会包含值。int
但是,如果将变量声明为 ,则该变量可能会包含 的子类型。这些示例包括 、 等。List
List
ArrayList
LinkedList
如果您确实有一个变量,并且您需要知道它是否是 一个 ,则可以执行以下操作:List
ArrayList
List y;
...
if (y instanceof ArrayList) {
...its and ArrayList...
}
但是,如果你发现自己认为你需要这样做,你可能需要重新思考你的方法。在大多数情况下,如果您遵循面向对象的原则,则不需要这样做。当然,每条规则都有例外。
实际上,通过滥用Java的方法重载能力,很容易滚动自己的测试器。虽然我仍然很好奇sdk中是否有官方方法。
例:
class Typetester {
void printType(byte x) {
System.out.println(x + " is an byte");
}
void printType(int x) {
System.out.println(x + " is an int");
}
void printType(float x) {
System.out.println(x + " is an float");
}
void printType(double x) {
System.out.println(x + " is an double");
}
void printType(char x) {
System.out.println(x + " is an char");
}
}
然后:
Typetester t = new Typetester();
t.printType( yourVariable );