2016-05-11 51 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欢迎您 –

相关问题