Java 从数组设置类属性

Java 从数组设置类属性,java,android,arrays,android-studio,linked-list,Java,Android,Arrays,Android Studio,Linked List,如何访问数组中作为对象的类的get和set方法 例: 狗狗 Class Dog{ int id; string name; public void setid(int newid){ id=newid; } public void setname(string newname){ name=newname; } public int getid() { return id; } public string getname() { return name; }} main.

如何访问数组中作为对象的类的get和set方法

例:

狗狗

Class Dog{
int id;
string name;

public void setid(int newid){
    id=newid;
}
public void setname(string newname){
    name=newname;
}

public int getid() { return id; }

public string getname() { return name; }}
main.cs

main(){

public LinkedList<Object> dogs = new LinkedList<Object>();

public void onCreate(){
    Dog newDog = new Dog();

    newDog.setid((int) 1);
    newDog.setname((string) "Doggy");

    dogs.add(newDog);
}

public void LoadEvent(){

    // I want to get the dog's values like this

    string itsname = dogs.get(0).getname();

}}
main(){
public LinkedList dogs=new LinkedList();
public void onCreate(){
新狗=新狗();
newDog.setid((int)1);
setname((字符串)“Doggy”);
添加(newDog);
}
公共void LoadEvent(){
//我想得到这样的狗的价值观
string itsname=dogs.get(0.getname();
}}
我想访问我在dog.class中编写的get和set方法,但我无法访问这些方法,因为我将该类作为对象放在数组中。请告诉我如何做到这一点,或者有没有其他方法来做到这一点

请帮帮我


非常感谢

如果您确信阵列中的所有对象都是狗,则在访问属性时将其投射:

String itsname = ((Dog)dogs.get(0)).getName();
如果您不自信,请检查:

String itsName = null;
if (dogs.get(0) instanceof Dog.class) {
  itsName = (Dog)dogs.get(0).getName();
}
否则,我建议断言该对象前面满是狗,这样您就不必处理此问题:

public LinkedList<Dog> dogs = new LinkedList<Dog>();
public LinkedList dogs=new LinkedList();
两个选项:

1(错误):cast在访问其成员之前将
对象
返回到所需类型:

String name = ((Dog)dogs.get(0)).getName();
2(更好的一个):通过
Dog
参数化您的列表,这样就可以在不强制转换的情况下操作实例:

List<Dog> dogs = new LinkedList<>(); // by <Dog> we say, that list will contain `Dog` instances
// ...
String name = dogs.get(0).getName();
List dogs=new LinkedList();//我们说,该列表将包含“Dog”实例
// ...
字符串名称=dogs.get(0.getName();

此外,为什么
LinkedList
?它非常适合堆栈和队列,而不是随机访问列表。我想
ArrayList
在你的情况下会更好。

请把你的评论作为答案,这样我也可以标记它,你能给我更多关于参数化类的细节吗。非常感谢。非常感谢,我使用了坏的一个,因为我的android studio中存在一些bug,在列表中添加一个类会使所有元素的值相同。