2016-05-11 49 views
0

我有對象的列表中某些類的數組列表:如何從其他類訪問列表中的對象?

public class Customer implements barber.barberapp.crud { 
private String[] data = {"id", "imie", "nazwisko", "email", "tel"}; 

public static List<Customer> getClients(){ 
    List<Customer> list = new ArrayList<Customer>(); 

    Customer c1 = new Customer("001", "Adam", "Nowak", "[email protected]","123"); 
    list.add(c1); 

    list.get(0).data[0] = "999"; //checking if accessing object works correctly 

    return list; 
    } 
} 

現在,當我嘗試訪問像其他類的列表中,我得到一個錯誤「無法解析符號得到」。

public class CustomerListActivity extends AppCompatActivity { 
    List<Customer> list = Customer.getClients(); 
    list.get(0).data[0] = "999" //error here 
} 

編輯:getClients方法返回列表<客戶>現在,但問題仍然在這裏。

+0

你的「數據」是私人的,你不能在你的班級以外的地方訪問它,除非你實現了getter和setter ......無論如何,你的班級的設計似乎有點搞砸 –

+0

你可能忘記在末尾加上分號行'list.get(0).data [0] =「999」'? –

+0

已將其更改爲公開,但未使錯誤消失。分號也不是問題。當我寫信時,intelliJ甚至不接受「get」list.get(0) –

回答

0

您的代碼,除非它是一個實例變量,需要去一個方法內。因此,在您Customer類實現的吸氣劑(getData())後,嘗試這樣的事情:

public class CustomerListActivity extends AppCompatActivity { 
    List<Customer> list = Customer.getClients(); 
    public void yourMethod(){ 
     list.get(0).getData()[0] = "999"; 
    } 
} 

裏面的Customer類

public String[] getData(){ 
    return data; 
} 

這就是說,你可能要重新設計你的類,因爲它看起來有點奇怪並且請注意,您應該爲客戶類提供明確的構造函數,因爲這是您創建客戶實例的方式

Customer c1 = new Customer("001", "Adam", "Nowak", "[email protected]","123"); 

希望有所幫助。

+0

比你這麼多:)這個問題解決了 –

+0

@MichaelXaxaxa歡迎您 –

相關問題