Подтвердить что ты не робот

Метод должен вызывать ошибку super() в Netbeans

Недавно я создал проект Netbeans, и я использую SVN вместе с ним. Я вижу повторяющуюся ошибку класса, а в консоли он говорит

java.lang.VerifyError: (class: pie/chart/explorer/PieChartExplorer, method: <init> signature: ()V) Constructor must call super() or this()
Could not find the main class: pie.chart.explorer.PieChartExplorer. Program will exit.
Exception in thread "main" Java Result: 1

Вот PieChartExplorer.java:

package pie.chart.explorer;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class PieChartExplorer extends JFrame implements ActionListener {


    JTextField one = new JTextField(10);
     JTextField two = new JTextField(10);
      JTextField three = new JTextField(10);
    JButton sub = new JButton("Click to be amazed");


    public PieChartExplorer() {
        super("Pie Chart Explorer");
        setSize(300,100);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        FlowLayout flo = new FlowLayout();
        setLayout(flo);
        setVisible(true);
        add(one);
        add(two);
        add(three);
        sub.addActionListener(this);;
        add(sub);

    }

    public static void main(String[] args) {
        PieChartExplorer app = new PieChartExplorer();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();

        if(source == sub) {
            try {
            Pie show = new Pie(Float.parseFloat(one.getText()),Float.parseFloat(two.getText()),Float.parseFloat(three.getText()));
            } catch(Exception ex) {
                JOptionPane.showMessageDialog(this, "Please check entered data");

            }
        }
    }

}

Я пробовал:

  • Проект по очистке и перестройке
  • Убедившись, что я назвал super во всех конструкторах

Как это можно зафиксировать? Код для загрузки.

4b9b3361

Ответ 1

Я видел эти симптомы только на днях.

У меня был файл, который я редактировал, и решил, что хочу разбить свои изменения на 2 коммита. Я пошел в каталог, содержащий мой файл "x/y/Z.java", создал каталог в "x/y" с именем "backup", переместил "Z.java" и вытащил новую копию из контроля версий. Обратите внимание, что все это было сделано вне IDE.

Вернувшись в среду IDE, я объединился в изменениях для первого коммита, и когда я построил, я получил сообщение о дубликат класса для "Z.java".

Когда я скопировал источник в "backup", я сделал это вне IDE, и у него все еще был оригинальный пакет "x.y", как и мой недавно отредактированный "Z.java". NB не будет компилировать новую "Z.java", поскольку он мог видеть, что она уже создала "x.y.Z.class" (из "x/y/backup/Z.java" ).

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

  • Переименуйте "x/y/backup/Z.java" в "x/y/backup/Z.java.backup". (Предотвращение компиляции резервной копии.)
  • Измените пакет в "x/y/backup/Z.java" с "x.y" на "x.y.backup". (Сделайте резервную копию, создайте другой файл класса.)

После внесения любого из этих изменений выполните "очистить и построить". Примечание: простое построение не устранит проблему, вам нужно выполнить очистку, чтобы удалить файл класса rogue.

Примечание. # 1 было выполнено путем переименования Z.java из командной строки, а не внутри NB. NB не позволит вам изменить расширение файла.

Ответ 2

Я обнаружил, что переименование пакета не сработало, старый пакет все еще был там.

Проблема для меня началась, когда я скопировал пакет из другого приложения в текущее приложение, у которого уже был пакет с тем же именем. Я пытался добавить некоторые недостающие классы в пакет. После того, как я это сделал, произошла ошибка.

Чтобы решить эту проблему, я удалил весь пакет из целевого веб-приложения и сделал чистую и сборку. Затем я скопировал исходный пакет в целевое приложение. Нет ошибок.

Ответ 3

Очистка и строительство решают проблему

Ответ 4

Если у вас все еще есть проблема, вот как я ее решил.

В моем случае я сменил класс с основным методом позже, и исходный класс по-прежнему ссылался в файле пропорций.

Измените эту настройку, очистите и постройте.. Это сработало для меня...

Ответ 5

В моем случае у меня была такая же проблема в веб-приложении после создания внешней копии POJO и вручную ее редактирования за пределами NETBEANS. На самом деле проблема заключалась в том, что другие предложили в других ответах о конфликте в уже скомпилированных файлах .class.

Что я сделал, чтобы преодолеть это, просто удалить папку webAppname/WEB-INF/classes (где скомпилированные классы находятся), а затем сделать Clean and Build

Надеюсь, это поможет кому-то