0
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++;

}

我在 LifeInsurance 类中有这个数组,我想this.label = Individual.l; 从其他类中访问。

这怎么可能?提前致谢!

4

5 回答 5

1

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

于 2013-05-20T15:53:53.667 回答
0

您的代码存在一个微妙的安全问题。您在完全构造之前添加this到包访问LIArray变量。this因此,另一个线程可以查看 half-constructed this,这可能(很少)导致各种问题。

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

于 2013-05-20T16:17:36.120 回答
0

创建吸气剂:

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

并调用:

lInsurance = new LifeInsurance(args......);
lInsurance.getLabel();
于 2013-05-20T16:05:57.683 回答
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.
于 2013-05-20T15:57:12.350 回答
0

leo21 是对的。看来您希望稍后访问您的一项保险,所以这将是:

Insurances 数组的吸气剂:

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

加上所需属性的吸气剂:

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

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

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

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

我已经很长时间没有用 Java 编码了,所以语法可能不正确(如有必要,请编辑我),但这是我的想法......

于 2013-05-20T18:04:26.777 回答