找到不兼容的类型

时间:2013-09-19 01:53:43

标签: java

我正在开展一个项目,但我仍然坚持我认为最后的部分。我有一个类:Volt,它涉及以下代码段:

 public Volt scaleByFactor(double scalar) {

    public Point getStart() {
        return start;
    }

    public Point getEnd() {
        return end;
    }

    double tempX = (end.getX() - start.getX()) * scalar + start.getX();
    double tempY = (end.getY() - start.getY()) * scalar + start.getY();


    //There is another class: public Point(double x, double y)
    Point s = new Point(tempX, tempY);
    Volt sls = new Volt(start, s);
    return sls;

另一个类:Sweep,包含以下代码段:

    Point p1 = new Point(X1, Y1);
    Point p2 = new Point(X2, Y2);
    Volt ls = new Volt(p1, p2);
    Point newPoint = ls.scaleByFactor(scalar);

发生的事情是:当我编译时,我被告知: 不兼容的类型 发现:伏特 必需:点

现在我理解这意味着我需要使用类型点而不是Volt类型,但我不知道它是如何完成的?

2 个答案:

答案 0 :(得分:2)

忽略在方法中有方法的事实(在Java中不允许)。问题出现在这里:

Point newPoint = ls.scaleByFactor(scalar);

您声明了Point类型的变量,但您将scaleByFactor的结果分配给它。 scaleByFactor会返回Volt个对象,因此您无法将其分配给Point

答案 1 :(得分:1)

我不完全确定预期的功能,但试试这个:

 public Point scaleByFactor(double scalar) {
    double tempX = (end.getX() - start.getX()) * scalar + start.getX();
    double tempY = (end.getY() - start.getY()) * scalar + start.getY();

    //There is another class: public Point(double x, double y)
    Point s = new Point(tempX, tempY);
    return s;
}

或者将其他功能更改为:

Point p1 = new Point(X1, Y1);
Point p2 = new Point(X2, Y2);
Volt ls = new Volt(p1, p2);
Volt newVolt = ls.scaleByFactor(scalar);