导入具有相同名称的类

时间:2016-07-18 19:49:39

标签: java

具有相同名称的2个类。

public class Predictor()
{
    String name;
    PredictorA predictorA;
    PredictorB predictorB;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public PredictorA getPredictorA() {
        return predictorA;
    }
    public void setPredictorA (PredictorA predictorA) {
        this.predictorA = predictorA;
    }
    public PredictorB getPredictorB() {
        return predictorB;
    }
    public void setPredictorB(PredictorB predictorB) {
        this.predictorB = predictorB;
   }
}

PredictorA和PredictorB。

包预测器.version1 类Predictor,PredictorA,PredictorB。

包预测器.version2 类Predictor,PredictorA,PredictorB

使用多种方法调用Result的其他类。

import XX
public class Result()
{
    public void prediction(Predictor predictor)
    {
    ...
    predictor.getPredictorA().getName();
    ...
    }
}

我希望能够在类Result中使用包Predictor.version1的预测器和包预测器的预测器,并且使用2个类结果预测方法预测。

1 个答案:

答案 0 :(得分:2)

导入两个具有相同名称的类然后尝试使用它们不会起作用,因为编译器可能不知道你所指的两个类中的哪一个。您必须使用至少一个类的完全限定名称,而不是导入它。

例如:

package whatever;

import predictor.version1.Predictor;

public class Result {
    // Uses the Predictor from package predictor.version1 which was imported
    public void prediction(Predictor p) {
        // ...
    }

    // Use fully-qualified class name to indicate that Predictor
    // from package predictor.version2 should be used
    public void prediction(predictor.version2.Predictor p) {
        // ...
    }
}