2016-03-10 2 views
0

У моего профессора есть эта штука со входом и что главное не может быть длиннее 30 строк, но он хочет, чтобы мы проверяли ввод. Я делаю подкласс прямоугольника, поэтому у меня есть это в основном, чтобы получить параметры прямоугольника.Как сделать метод для подтверждения ввода

Scanner input = new Scanner(System.in); 

    System.out.println("Enter the X coordinate (Upper Left bound):"); 
    int x = input.nextInt(); 

    System.out.println("Enter the Y coordinate (Upper Left bound):"); 
    int y = input.nextInt(); 

    System.out.println("Enter the width of the rectangle: "); 
    int width = input.nextInt(); 

    System.out.println("Enter the height of the rectangle: "); 
    int height = input.nextInt(); 

    BetterRectangle rectangle = new BetterRectangle(x, y, width, height); 

Он хочет, чтобы сделать метод в другом классе для проверки с помощью hasNextInt, но я не знаю, как реализовать метод, который проверяет ввод, который исходит от основного класса или же я должен двигаться так, как он получает вход из основного?

+0

Просто передавать входы по ссылке или передавать входы методу, который возвращает прямоугольник или исключение. – CalebB

+0

добавить метод проверки (на уровне экземпляра), а затем вызвать его в конструкторе 'BetterRectangle' для проверки входов – TheLostMind

+0

, так что id должен перемещать входы в класс, а не в главном? –

ответ

2

Почему вы не можете иметь метод, который имеет Scannerinput в качестве параметра

public int getNext (Scanner input, String prompt) { 

    System.out.println (prompt); 

    if (input.hasNextInt()) { 
     return input.nextInt(); 
    } 

    // return some magic number or maybe throw exception 
    return Integer.MIN_VALUE; 
} 

Обновлены для @laune отличной идеи

Это может быть использовано в качестве

int x = getNext (input, "Enter the X coordinate (Upper Left bound):"); 
int y = getNext (input, "Enter the Y coordinate (Upper Left bound):"); 
int w = getNext (input, "Enter the width of the rectangle: "); 
int h = getNext (input, "Enter the height of the rectangle:"); 
+0

Можно пройти весь путь и добавить подсказку к этому методу. – laune

+0

@laune Ты хочешь что-то такое. –

+0

как бы я получил 4 разных параметра? –