从其他类访问数组

时间:2013-05-20 15:40:27

标签: java arrays

static LifeInsurance[] LIArray = new LifeInsurance[20];

public LifeInsurance ( float dMonth, int startD,int startM,int startY,int label){

    LifeInsurance.LIArray[LifeInsurance.counterLI] = this;

    this.dMonth = dMonth;
    this.startD = startD;
    this.startM = startM;
    this.startY = startY;
    this.label = Individual.l;
    this.codeLΙ = counterLI;




    counterLI++;

}

我在Life Insurance课程中有这个数组,我想访问this.label = Individual.l; 从另一个班级。

这怎么可能?提前谢谢!

5 个答案:

答案 0 :(得分:1)

为静态变量创建geter和setter。获取该类的实例以获取静态变量(在本例中为数组)并从您需要的数组中获取对象。然后使用getter作为标签。

答案 1 :(得分:0)

要通过课程访问它,你应该这样做:

lInsurance = new LifeInsurance(args......);
lInsurance.label; //if label is visible from the class you're calling, otherwise:lI
lInsurance.getLabel(); //you'll need to define this method.

答案 2 :(得分:0)

创建getter:

public String getLabel(){
    return this.label;
}

并致电:

lInsurance = new LifeInsurance(args......);
lInsurance.getLabel();

答案 3 :(得分:0)

您的代码存在一个微妙的安全问题。在this完全构建之前,您可以将LIArray添加到package-access this变量中。因此,另一个线程可以查看半构造的this,它可以(很少)导致各种问题。

顺便问一下,CounterLI是什么?您可能应该使用ListMap作为所有人寿保险单的列表而不是数组。

答案 4 :(得分:0)

leo21是对的。您似乎希望以后访问您的某个保险,因此这将是:

保险阵列的吸气者:

public static LifeInsurance[] getInsurances() {
    return LIArray;
}

加上所需属性的getter:

public String getLabel() {
    return this.label;
}

然后您可以通过以下方式静态访问它:

String a_label = LifeInsurance.getInsurances()[an_index].getLabel();

注意:数组的getter必须是静态的。

很长一段时间我没有使用Java编写代码,因此语法可能不正确(如有必要,可以编辑我),但这就是想法......