public static Instrument next(){
private Random rand = new Random();
switch(rand.nextInt(5)){
case 0: return new Wind();
case 1: return new Percussion();
case 2: return new Stringed();
case 3: return new Brass();
case 4: return new Woodwind();
}
}
其中instrument 是基类,其他类都是它的子类!
请问一下为什么编译会出错,它显示没有返回值!
这样就可以了,为什么?
public static Instrument next(){
private Random rand = new Random();
switch(rand.nextInt(5)){
default:
case 0: return new Wind();
case 1: return new Percussion();
case 2: return new Stringed();
case 3: return new Brass();
case 4: return new Woodwind();
}
}
private Random rand = new Random();
switch(rand.nextInt(5)){
case 0: return new Wind();
case 1: return new Percussion();
case 2: return new Stringed();
case 3: return new Brass();
case 4: return new Woodwind();
}
}
其中instrument 是基类,其他类都是它的子类!
请问一下为什么编译会出错,它显示没有返回值!
这样就可以了,为什么?
public static Instrument next(){
private Random rand = new Random();
switch(rand.nextInt(5)){
default:
case 0: return new Wind();
case 1: return new Percussion();
case 2: return new Stringed();
case 3: return new Brass();
case 4: return new Woodwind();
}
}
而且是rand运算,编译器不会根据实际运算结果(0-5),而取消default的处理情况
我把switch里面的参数改成2也会出错!
还有为什么break也没有!?
照你写的那样加的default:,则值不为0、1、2、3、4时返回了new Wind();就不错了。