Конструктор Circle в классе Circle не может быть применен к данным типам - PullRequest
0 голосов
/ 08 января 2020

Я пробовал демонстрацию библиотеки javafx Circle, я скопировал код из примера, но он не компилируется. Мой код

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;

public class Circle extends Application {

    public void start(Stage stage) {
        stage.setTitle("Circle Demo");
        Circle circle = new Circle(150.0f, 150.0f, 80.f);
        Group group = new Group(circle);
        Scene scene = new Scene(group, 500, 300);
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
} 

Я получаю ошибку:

Circle. java: 11: error: конструктор Circle в классе Circle не может быть применен к данным типам; Круг круга = новый круг (150.0f, 150.0f, 80.f);

1 Ответ

1 голос
/ 08 января 2020

В названии вашего класса есть двусмысленность. Он имеет то же имя с классом Circle в пакете javafx.scene.shape.

Таким образом, new Circle(150.0f, 150.0f, 80.f); здесь относится к текущему классу, а не javafx.scene.shape.Circle.

Два способа исправить это:

  1. Можно использовать полные имена классов. Изменение кода на new javafx.scene.shape.Circle(150.0f, 150.0f, 80.f); будет ссылаться на требуемый пакет.
  2. Изменение имени вашего класса на другое имя, которое не разделяет имя класса библиотеки. Например, изменение имени класса с Circle на CircleDemo решило бы эту проблему.

Рекомендуется второй подход, поскольку может быть довольно запутанным иметь имена классов, подобные библиотеке классы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...