如何修复“无法解决方法”?

时间:2017-12-18 21:57:02

标签: java class methods

首先我有这个课程:

public float getPixel(int height, int width)
{
   return data[height][width];
}

public void setPixel(float value, int height, int width)
{
   if (value > getMax())
     value = getMax();
   if (value < 0)
    value = 0;
   data[height][width] = value;
}

private Image(String magicNumber, int height, int width, float max) {
  this.magicNumber = magicNumber;
  this.width = width;
  this.height = height;
  this.max = max;
  data = new float[height][width];
}
...
public Image clone()
{
  Image clone = new Image(getMagicNumber(), getHeight(), getWidth(), getMax());
   for (int i = 0; i < getHeight(); i++)
   {
     for (int j = 0; j < getWidth(); j++)
     {
        clone.setPixel(getPixel(i, j), i, j);
     }
   }
  return clone;
}

然后这堂课:

public class Filter {

    public Filter() {

    }

    public Image linearFilter(Image image, float[][] kernel)
    {
        Image filtered = image.clone();
        for (int i = 0; i < getHeight(); i++) 
        {  /* cannot resolve getHeight*/
            ...
        }
         return filtered;
    }
}

我有两个问题:

1)为什么我不需要创建Image类的实例。在这里,我已经可以使用filtered.setPixels ...

2)如何使用“无法解决方法”解决问题?

1 个答案:

答案 0 :(得分:-1)

我无法从你的帖子中说出来,因为你发布的第一个片段似乎不是整个课程,而是它的一部分。我假设你有一个Image类,而Image类有一个名为getHeight()的方法。

在for循环条件for (int i = 0; i < getHeight(); i++)中,您很可能希望将getHeight()更改为filtered.getHeight(),因为getHeight()Image内部的方法类,filtered(大概)类型为Image