0
我想從另一個類中包含的一個類中調用方法。但是我不知道要調用的對象名稱,所以我不能使用命令ClassName.objectName.methodName()調用不同類的方法,但不知道對象的名稱
此外,該命令不起作用,因爲.this引用了它自己的類中的對象。
我已經嘗試過很多代碼組合,但都給了我編譯器錯誤。
這是我試圖運行線路:
averageVector[i]=averageVector[i]+(FeatureVector.featureAt(i));
FeatureVector是包含對象的類。
如果您需要更多信息,請告訴我。
在此先感謝。
的要求完整代碼:
類名:簇:
public FeatureVector getCentroid(){
int numberOfVectors;
double [] averageVector;
numberOfVectors=this.getSize();
averageVector=new double [this.featureV[0].getSize()];
for (int i=0; i<numberOfVectors;i++){
averageVector[i]=averageVector[i]+(FeatureVector.this.featureAt(i));
}
for (int i=0; i<averageVector.length; i++){
averageVector[i]=(averageVector[i]/numberOfVectors);
}
FeatureVector centroid = new FeatureVector (numberOfCentroids, averageVector);
return FeatureVector.centroid;
}
類FeatureVector:
class FeatureVector {
private double [] elems;
//...
//constructor
FeatureVector (String newName, double [] newElems){
name=newName;
double [] elems=new double [newElems.length];
for (int i=0; i < newElems.length; i++){
elems[i]=newElems[i];
}
和FeatureVector方法:
public double featureAt(int index){
return elems[index];
}
你就不能調用featureAt(一世)?您也可以嘗試FeatureVector.this.featureat(i)。這兩個建議都假設你的內部類是非靜態的。 –
當試圖FeatureVector.this.featureat(i)我得到編譯器錯誤:不是一個封閉的類:FeatureVector – JavaThings
你需要給我更多的信息,我認爲,什麼是「功能」,你當然至少必須有一些關於目的。你有一系列的嗎?只有一個?你根本不需要這個對象,你可以在'FeatureVector'中調用一個方法來返回這個對象? – turbo