Попытка создания экземпляра в цикле, получить неожиданный тип (ожидаемая переменная) - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь создать три объекта в цикле, чтобы не использовать текст конструктора повторно.Это потому, что для Uni мы помечены, если мы повторно используем одну и ту же строку кода (она помечается автоматически).

Мой код выглядит следующим образом:

EnemyShip enemy1;
EnemyShip enemy2;
EnemyShip enemy3;

public Game()
{
    for (int i = 1; i <= 3; i++) {
        getEnemyRef(i) = new EnemyShip(); //getEnemyRef unexpected type - required:variable found:value
        //enemy1 = new EnemyShip(); works normally
    }
}

Символ i подчеркнути мне сказали, что это значение не переменное.

Обратите внимание, что я использую следующий код вместо списка или массива, потому что нам не разрешено использовать их для этой задачи.

public EnemyShip getEnemyRef(int enemy) {
    switch (enemy) 
    {
        case 1:
        return enemy1;

        case 2:
        return enemy2;

        case 3:
        return enemy3;
    }
    return null;
}

Система маркировки основывается на том, сколько раз строка используется повторно, сколько раз она написана в исходном коде, а не сколько раз она выполняется

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Этот фрагмент должен выполнить трюк:

public void setEnemyRef(int enemyFlag, EnemyShip enemy){
    switch (enemyFlag){
        case 1:
            enemy1 = enemy;
            break;
        case 2:
            enemy2 = enemy;
            break;
        case 3:
            enemy3 = enemy;
            break;
    }
}

А затем в for-loop:

for (int i = 1; i <= 3; i++) {
    setEnemyRef(i, new EnemyShip());
}
0 голосов
/ 01 июня 2018

Вы не инстанцируете это правильно, попробуйте, например,

EnemyShip variableName = getEnemryRef(i); variableName = new EnemyShip();

https://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...