2016-05-11 21 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

ゲッターとセッターを実装しない限り、あなたの "データ"はあなたのクラスの外にはアクセスできません...とにかく、あなたのクラスのデザインは少し混乱しているようです。 –

+0

最後にセミコロンリスト 'list.get(0).data [0] =" 999 "'の行の? –

+0

はpublicに変更されましたが、エラーが消えませんでした。セミコロンも問題ではありません。 intelliJは私がlist.get(0)を書くときに "get"を受け入れない。 –

答えて

0

あなたのコードは、インスタンス変数でない限り、メソッド内に入る必要があります。だからあなたのCustomerクラスにゲッター(getData())を実装した後、このような何かを試してください:あなたはそれが少し見えますので、あなたのクラスを再設計することをお勧めしますと、Customerクラス

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

インサイド

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

奇妙なことに、Customerクラスの明示的なコンストラクタを提供する必要があることに注意してください。

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

助けてくれることを願っています。

+0

あなたはそれほど多くありません:)これは問題を解決しました –

+0

@MichaelXaxaxaようこそ –

関連する問題