hedefi listeden bir nesne almak özelliklerine bakmak ve gerektiğinde bunları değiştirmek mümkün değildir. Liste çeşitli türlerde nesneleri tutabilir.
Yani liste Vehicle
nesneleri ve Person
nesneleri
public class Person
{
public String name;
public Integer age;
}
public class Vehicle
{
public String make;
public String model;
}
Ben Person
nesne tıklarsanız, masa adını ve yaşını gösterecektir içeren demek, ve onlara yeni değerler atayabilirsiniz. Benzer şekilde, bir Vehicle
nesnesini tıklarsam, tablodaki model ve modeli görüntüler ve bunları değiştirmeme izin verir. Ben bakmak ve almak için bazı yansıma yöntemleri kullanmak istediğiniz örnek değişkeni temsil dizeleri listesini döndürür
public String[] getFields()
{
return new String[] {"name", "age"};
}
gibi bir yöntem yazma kabul var
/ayarlayın. Tüm sınıflarda bu getFields
yöntemini tanımlayabilirim, böylece listeye atılabilen rasgele nesneleri işlemek için tabloyu kullanabilirim.
Ama yansıması çare kalmaması bu tasarlamak için bir yol var? Mevcut yaklaşım kötü tasarım gibi görünüyor.
Öte yandan, birden TableModel
nesneleri mümkün olan her sınıf için bir tane yaratabilir. Tablo, hangi satırların görüntüleneceğini ve nesnenin örnek değişkenlerine nasıl erişileceğini bilir. Ama sonra yeni bir sınıf eklendiğinde, zayıf bir tasarıma benzeyen yeni bir masa modeli tanımlamak zorunda kalırım.
1+ ve teşekkürler. –