2016-10-22 9 views
-1

Я работаю над проектом, где мне нужно создать ArrayList внутри конструктора класса. Я сделал это так:Созданный конструктор объекта доступа ArrayList Java

ArrayList<Users> grouping; 
public userGroup(){ 
grouping = new ArrayList<Users>();  
} 

Это работа по своему усмотрению. я объявил новые администраторы UserGroup в моем «Main.java»

userGroup administrators = new userGroup(); 

Однако мне теперь нужно получить доступ к ArrayList из Main.java, так:

 /*Last Item in administrators Object's ArrayList*/.setUserType("user"); 

Я не уверен, как это сделать .. Я попытался

administrators.grouping.setUserType("user"); 

Но не знаю, что попробовать следующий.

+0

Если вы хотите, чтобы вызвать метод на последний элемент списка, это будет 'administrators.grouping.get (administrators.grouping.size() - 1) .setUserType («пользователь»); ' – khelwood

ответ

1

administrators.grouping предоставит вам список. если вы хотите получить доступ к элементу из него, вам нужно сначала его получить, и только после этого вы можете называть его setUserType.

administrators.grouping.get(i).setUserType("user"); 

где i является индекс элемента, который вы хотите из списка.

Also- это хорошая практика, чтобы инкапсулировать поля вашего класса, то есть не имеют доступа поле непосредственно, но установить их как частные и добавить метод геттер:

public class UserGroup { 
private List<Users> grouping; 
public userGroup(){ 
    grouping = new ArrayList<Users>();  
} 
public ArrayList<Users> getGrouping() { 
    return this.grouping; // changed l to ; 
} 
} 

И потом:

administrators.getGrouping().get(i).setUserType("user"); 
+0

Итак, могу ли я использовать последний элемент int i = administrators.getGrouping(). size(); administratorators.getGrouping(). Get (i) .setUserType («пользователь»); –

+0

@TaylorMudd - 'i' должен быть размером минус один - помните, что индексы начинаются с 0 –

1

Вы должны написать геттер для поля группировки.

class UserGroup { 
    ArrayList<Users> grouping; 

    public UserGroup(){ 
     grouping = new ArrayList<Users>();  
    } 

    public ArrayList<Users> getGrouping() { 
     return this.grouping; 
    } 
} 

И главный

UserGroup administrators = new UserGroup(); 
int size = administrators.getGrouping().size(); 
// I recommend you to check if size is not 0 here 
administrators.getGrouping().get(size - 1).setUserType("user");