如何修复“ Java:找不到符号”

时间:2019-04-28 09:49:40

标签: java comparator

我正在使用JB IntelliJ IDEA并试图创建一个对矩形进行排序的程序。但是我无法解决

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

option = Options()
option.set_capability("pageLoadStrategy","eager")

driver = webdriver.Chrome(executable_path="chromedriver.exe",options=option)

我该怎么办?

注意:重新进行项目并没有帮助我。

主要:

"Error:(28, 22) java: cannot find symbol
  symbol:   method Rectangle(java.lang.Double,java.lang.Double)
  location: class io.github.vadimsam.rectsort.Rectangle".

矩形:

import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;

class SComparator implements Comparator<Rectangle> {

    public int compare(Rectangle r1, Rectangle r2) {
        return r1.area().compareTo(r2.area());

    }
}

public class Main {

    public static void main(String[] args) {

       ArrayList<Rectangle> rectsArea = new ArrayList<>();
       Scanner input = new Scanner(System.in);
       SComparator comparator = new SComparator();

       while(true){
            System.out.print("A = ");
            Double a = input.nextDouble();
            System.out.print("B = ");
            Double b = input.nextDouble();
            Rectangle.Rectangle(a,b);
            rectsArea.sort(comparator);
            if (a  == 0) {
                System.out.println("Sorted ArrayList:");
                System.out.println(rectsArea);
                break;
            }
        }
    }
}

它应该返回排序后的ArrayList

3 个答案:

答案 0 :(得分:1)

代替写作:

explode('?', $url)[0];

正在调用名为Rectangle.Rectangle(a,b); 的静态方法,该方法可能是Rectangle类的一部分,请尝试使用您在Rectangle类中声明的构造函数创建对象以实例化新矩形对象:

Rectangle

您没有在Rectangle rectangle = new Rectangle(a, b); 类中声明任何名为Rectangle的静态方法,这就是出现此错误的原因。

答案 1 :(得分:1)

此行:

  Rectangle.Rectangle(a,b);

表示对由类Rectangle定义的名为Rectangle的静态方法的调用。没有这样的方法!这就是“找不到符号错误”的原因。

有一个构造函数Rectangle(int, int),但是您没有在Java中调用构造函数。您new。例如:

  Rectangle someRectangle = new Rectangle(a,b);

但是,从上下文来看,我怀疑您应该将新的Rectangle对象分配给您先前创建的数组的元素。

但是您的代码(我该怎么说)是“困惑的”。我认为您需要仔细阅读它,并向您的rubber duck解释每个语句的作用。

答案 2 :(得分:0)

我认为您的问题出在关键点

Rectangle.Rectangle(a,b);

这对于实例化对象是不正确的语法,因为矩形类中没有方法Rectangle,只有构造函数。使用构造函数的正确方法如下:

Rectangle rect = new Rectangle(a, b);