这这段代码中,Cycle是个基类
public Cycle get(){
switch(random.nextInt(3)){
default: //问题在这里,如果这句default:放到句末的话,这个方法将出错。
case 0: return new Unicycle(); //这些都是子类
case 1: return new Bicycle();
case 2: return new Tricycle();
}
//return null; 除非这里加句 return null;
}
关于这个问题谁知道??
public Cycle get(){
switch(random.nextInt(3)){
default: //问题在这里,如果这句default:放到句末的话,这个方法将出错。
case 0: return new Unicycle(); //这些都是子类
case 1: return new Bicycle();
case 2: return new Tricycle();
}
//return null; 除非这里加句 return null;
}
关于这个问题谁知道??
因为方法需要返回值,没有返回值就报错
你的方法应该有返回值.只要在Default返回Null即可.如下:public Cycle get(){
switch(random.nextInt(3)){
case 0: return new Unicycle(); //这些都是子类
case 1: return new Bicycle();
case 2: return new Tricycle();
default: return null;
}
}
程序就两种情况:执行case或者执行default
因为你的程序有可能出现都不符合case的情况,所以就执行default
而你的default没有返回值。如果没有在最后加一句return null;
就可能出现方法没有返回值,是不行的。
default放在开始,那么他先执行default 因为他没有return或break 所以继续执行到第二个有了返回值 跳出。
default放在最后,他直接到了default那里,因为他没有return或break,继续往下执行,因为下面没有东西了,而方法需要跳出。所以就出错了……不知道你明白了没有