0
我不明白为什么我的编译器在参数有效时显示非法参数异常。有任何想法吗?抛出非法参数异常
public class bikeBrakeTest {
public enum BrakeType {Caliper, Cantilever, LinearPull, Disc };
public BrakeType brakes;
public bikeBrakeTest() //Defualt Constructor
{
brakes = BrakeType.Caliper;
}
public bikeBrakeTest(BrakeType aBrake) //Parameterized Constructor
{
setBrakes(aBrake);
}
public void setBrakes (BrakeType aBrake) //Mutator Method "set"
{
if (aBrake.equals("Caliper") || aBrake.equals("Cantilever") || aBrake.equals("LinearPull") || aBrake.equals("Disc"))
{
brakes = aBrake;
}
else throw new IllegalArgumentException("invalid");
}
}
然后我的测试车是..
public class testing {
public static void main(String[] args)
{
bikeBrakeTest myBike = new bikeBrakeTest();
myBike.setBrakes(bikeBrakeTest.BrakeType.Caliper);
}
}
1.它不是编译器。 2.为什么你认为'BrakeType'永远等于'String'? –
“aBreak”不等于“Caliper”。不过,它可能等于'BrakeType.Caliper'。 –