2013-04-03 2 views
0

Я пытаюсь создать случайное число для int через метод. Я знаю, что это невозможно сделать, потому что int является примитивным типом, и я получаю int не может быть отсроченной ошибкой. Есть ли вокруг него место, где я все еще могу использовать метод для получения значения для int?Выполнение метода по int


public int move() 
{ 
    Random random = new Random(); 
    int generatedNum = random.nextInt(7 - 1) + 1; 

    return generatedNum; 
} 

public static void main(String[] args) 
{ 
    int player1 = 0; 
    int player2 = 0; 

    player1 = player1.move(); 
    player2 = player2.move(); 

} 
+0

Извините, не задавайте свой вопрос. – David

ответ

0

Что вы пытаетесь сделать? Это будет работать, но не знаю, если это то, что вы хотите ...

// made this static so you don't need a class reference 
public static int move() 
{ 
    Random random = new Random(); 
    int generatedNum = random.nextInt(7 - 1) + 1; 

    return generatedNum; 
} 

public static void main(String[] args) 
{ 
    int player1 = 0; 
    int player2 = 0; 

    // Now we just call the static method move to set the ints. 
    player1 = move(); 
    player2 = move(); 

} 
0

ИНТ не является примитивным типом и Integer является окончательным, так что нет, вы никогда не сможете писать 5.move(). Вы можете написать класс, который просто обертывает целое число, но не сможет делать с ним арифметику.

Возможно, Iterator<Integer> - интерфейс, который стоит реализовать.

0

Вы можете создать свой собственный класс, подобный классу Integer (к сожалению, final или вы сможете подклассифицировать это). Затем добавьте все методы, которые вы хотите использовать для этого класса. Немного неудобно использовать, когда вы хотите получить значение, но не слишком грязное.

+0

Это, к счастью, окончательный, тем самым обеспечивая неизменность. – Mordechai

+0

@MouseEvent - зависит от того, как вы на это смотрите. Есть и другие способы взломать этот орех. –

Смежные вопросы