在if语句中声明Java变量类型
我有两个Java类car和camion(这只是一个示例)。我想根据我的函数输入初始化一个变量“machine”:在if语句中声明Java变量类型,java,Java,我有两个Java类car和camion(这只是一个示例)。我想根据我的函数输入初始化一个变量“machine”: void printInfo(boolean is_car){ if(is_car) car machine = new car(); else camion machine = new camion(); String info = machine.getIn
void printInfo(boolean is_car){
if(is_car)
car machine = new car();
else
camion machine = new camion();
String info = machine.getInfo();
String type = machine.type();
...
}
似乎我不能在if语句之外使用声明的变量。
有什么解决办法吗?我希望避免在我的函数中使用大量的If语句。在If块之外声明Vehicle(假设它是car和camion的超级类)
Vehicle machine;
if (is_car) {
machine = new car();
} else {
machine = new camion();
}
如果他们有继承关系,你可以稍微改变一下,使之生效。否则,对于强类型语言来说,这将是一种可怕的做法,您应该不惜一切代价避免它。变量将立即超出范围,因此If不允许变量声明(除非包含在块中)。另见