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;
从另一个班级。
这怎么可能?提前谢谢!
答案 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
是什么?您可能应该使用List
或Map
作为所有人寿保险单的列表而不是数组。
答案 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编写代码,因此语法可能不正确(如有必要,可以编辑我),但这就是想法......