안녕하세요 스캐너 방법 hasNextDouble()
에 문제가 있습니다. 내 코드가 파일에서 읽고 배열에 추가 할 Vehicle
개체를 만듭니다. 차량 클래스에는 OversizedVehicle
이라는 하위 클래스가 있으며 그 높이를 나타내는 double
필드가 추가로 있습니다. 그래서 if (hasNextDouble())
을 사용하고 있는데 스캐너가 double
을 읽으면 Vehicle
대신 OversizedVehicle
개체가 생성됩니다. 여기에 내 코드입니다 :hasnextdouble 파일에서 내 다음 더블을 읽지 않습니다
while(s1.hasNext())
{
regNo = s1.next();
make = s1.next();
year = Integer.parseInt(s1.next());
description = s1.next();
if(s1.hasNextDouble() == true) {
height = s1.nextDouble();
vehicle = new OversizedVehicle(regNo,make,year,description,height);
}
else {
vehicle = new Vehicle(regNo, make, year, description);
}
System.out.println("New vehicles from file added to array in position " + count);
vehicles[count] = vehicle;
count++;
}
것은 내가 이클립스 IDE를 사용하고 내가 디버그 모드에서이 작업을 실행할 때 if
문은 항상 잘못 height
변수로 입력의 다음 regNo
을 가하고, true
로 평가합니다. 입력에서이 값은 double
이 아니지만 int
입니다. 나는 무엇이 잘못되었는지 잘 모릅니다. 그것은 당신의 입력 매개 변수들의 수는 다른 차량 및 대형 차량의 매개 변수가 들어 날 것으로 보인다
입력 파일은 어떻게 생겼습니까? – unjankify
대문자와 문장 부호를 붙이고,이 이해할 수없는 혼란을 단락 짓고, 다음의 double을 읽지 않는 'hasNextDouble()'을 정의하십시오. ' 대신 무엇이 발생합니까? – EJP