Можно ли вернуть несколько предметов за один звонок? - PullRequest
0 голосов
/ 21 августа 2009

возможно ли, чтобы следующий элемент возвратил несколько элементов за один вызов (т.е. два GRects)

    private GObject getColidingObject(){
    if(getElementAt(ball.getX(), ball.getY()) != null){
        return getElementAt(ball.getX(), ball.getY());
    }else if(getElementAt(ball.getX() + BALL_RADIUS *2, ball.getY()) != null){
        return getElementAt(ball.getX() + BALL_RADIUS *2, ball.getY());
    }else if(getElementAt(ball.getX(), ball.getY() + BALL_RADIUS *2) != null){
        return getElementAt(ball.getX(), ball.getY() + BALL_RADIUS *2);
    }else if(getElementAt(ball.getX() + BALL_RADIUS *2, ball.getY() + BALL_RADIUS *2) != null){
        return getElementAt(ball.getX() + BALL_RADIUS *2, ball.getY() + BALL_RADIUS *2);
    }else{
        return null;
    }
}

Ответы [ 14 ]

0 голосов
/ 21 августа 2009

Нет, это не так.

Функция Java имеет только одно возвращаемое значение.

Если вам действительно нужно вернуть несколько значений, вы можете вернуть либо список, либо массив значений, например:

private List<GObject> getColidingObject() {
         List<GObject> results = new ArrayList<GObject>();
         if( cond1() ) {
             results.add( getElementAt( .... ) ;
         } else if( cond2() ) { 
             results.add( getElementAt( .... ) ;
         } else if ( etc ... 

         return results;
}
0 голосов
/ 21 августа 2009

Всегда будет возвращать один объект. Однако этот объект может быть контейнерным классом, наследуемым от GObject, который содержит несколько объектов, например, GCompound .

0 голосов
/ 21 августа 2009

Метод может иметь только 1 возврат. Как только возвращение найдено, метод завершает свое выполнение.

0 голосов
/ 21 августа 2009

Неа. Если только нет GArray. Но, как написано, нет. Он вернет один или «нулевой» (нулевой) объект.

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