我有一个包含几个向量的类。这些载体中的每一个也含有载体。这些类中的字段包含私有字符串的setter和getter。
我有一个主类,其中包含所有向量。我实例化了这个类,我需要访问在向量中设置的字段。
如果结构如下:
public class a{
private Vector a, b, c;
}
private class b{
private Vector d, e, f;
}
所有这些类都有setter和getters的字符串 - 就是这样。
我可以做这样的事情(假设这个对象有填充字段的向量 - 这是在Digester的代码的单独部分完成的,但我知道这部分是正确的。)
a myObject = new a;
Vector b = this.b;
for(int i=0;i<b.size();i++){
System.out.println(a.b.get(i).getmyString());
}
如果是这样,我现在如何访问每个类中的方法,b,其向量是d e和f?
请帮忙! :(
答案 0 :(得分:0)
首先,您应该将矢量创建为特定于类型的。假设您正在将MyData
类型的对象存储到其中,所以您将拥有:
public class MyData {
private String myStringValue;
public String getMyStringValue() {
return this.myStringValue;
}
public void setMyStringValue(String myStringValue) {
this.myStringValue = myStringValue;
}
}
然后你应该有你的矢量:
private Vector<MyData> a, b, c;
如果将其初始化为此类,则可以执行此操作以访问对象的值:
// Loop through all MyData objects stored in the Vector b
for(MyData myData : b){
System.out.println(myData.getMyStringValue());
}
作为事后的想法,为什么要使用Vector
?您可能不需要Vector的同步性,因此最好使用ArrayList
。
private List<MyData> b = new ArrayList<MyData>(); // populate the arraylist with objects
此外,您将从学习有关封装的基本OO内容中获益更多(=我的示例中的getter和setter)。暂时忘记反思,并在不久的将来保存完整的基础知识。