2015-05-09 5 views
1

Я пытаюсь передать отдельные элементы CordsArray из общедоступного класса Enemy() в основное.Как вернуть элемент списка массивов из метода

public class Enemy { 

//constructor 
public Enemy() 
{ 
    //*create array of coordinates 
    ArrayList<Integer> CordArray = new ArrayList<Integer>(); 

    CordArray.add(0,2); 
    CordArray.add(1,5); 
    CordArray.add(2,8); 
    CordArray.add(3,10); 
} 

public static int returnCords(int[] CordArray, int index) 
{ 
    return CordArray[index]; 
} 

Я хотел выходные элементы CordArray к консоли, призывающих returnCords в основном:

System.out.println (returnCords (CordArray, 0));

Но появляется сообщение «CordArray не может быть разрешено переменной». Извинения за плохой английский.

+0

Посмотрите на то, как вы определили вашу переменную '' CordArray' в Enemy' и посмотреть на список агд для 'returnCords'. Вы не можете передать ArrayList, когда он ожидает массив int. – scrappedcola

+0

ChordArray - это локальная переменная в вашем конструкторе, и ничто другое не ссылалось на нее, поэтому она перестала существовать, как только закончил конструктор. –

+1

Типичный rep-w *** e bait question – rpax

ответ

1

Проблемы:
-переменных имен должны начинаться с буквой в нижнем регистре,
-lists может содержать отдельные объекты/значение, вы пытаетесь сохранить два в одном индексе

Создать объект Coords вместо:

public class Coords{ 
    private int x; 
    private int y; 

    public Coords(int x, int y){ 
     this.x = x; 
     this.y = y; 
    } 

    public int getX(){ 
     return x; 
    } 

    public int getY(){ 
     return y; 
    } 
} 

Теперь вы можете сделать это:

ArrayList<Coords> cordArray = new ArrayList<Coords>(); 

Надеюсь, поможет.

+1

Есть больше проблем с его кодом, чем два из перечисленных вами – Jyr

+1

Да, видимость CordsArray, остальные являются следствием двух упомянутых мной. – Suspended

1

попробуйте использовать точку и глобальное ArrayList с функцией ПОЛУЧИТЬ

import java.awt.Point; 
import java.util.ArrayList; 

public class Enemy { 

    private final ArrayList<Point> points; 

    public Enemy() { 
     points = new ArrayList<>(); 
     points.add(new Point(2, 5)); 
     points.add(new Point(8, 10)); 
    } 

    public ArrayList<Point> getPoints() { 
     return points; 
    } 

    public static void main(String[] args) { 
     Enemy enemy = new Enemy(); 
     int index = 0; 
     Point point = enemy.getPoints().get(index); 
     int x = point.x; 
     int y = point.y; 
    } 
} 
Смежные вопросы