Недопустимый модификатор, разрешен только финал?

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

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;


public class hw2redo 
{
    public static void main(String args[])
    {
         //Scan file for data
         GeometricObject g = null;
         BufferedReader file = new BufferedReader(new FileReader("file.txt"));
            Scanner diskScanner = new Scanner(file);
            //Create dynamic array list
            List<GeometricObject> list = new ArrayList<GeometricObject>();
            //Scan data and add data to list
            while(diskScanner.hasNext())
            {
                String geolist = diskScanner.nextLine();
                g = recreateObject(geolist);

                list.add(g);

            }

            private static GeometricObject recreateObject(String data)
            {
                System.out.println(data);
            }
    }

}

Тем не менее я получаю сообщение об ошибке моего метода refreshateObject, в котором говорится, что "метод refreshateObject(String) не определен для типа hw2redo". Любая помощь или советы о том, что я делаю неправильно, будет принята с благодарностью. Спасибо! Примечание: я просто добавил что-то произвольное в метод, чтобы увидеть, была ли ошибка, потому что она была пустой. Я просто хочу знать, как вызвать закрытый метод, не получая ошибку.

1 ответ

Решение

Ваш recreateObject Метод определяется внутри main метод. Переместите это вне тела main:

public class hw2redo 
{
    public static void main(String args[])
    {
         //Scan file for data
         GeometricObject g = null;
         BufferedReader file = new BufferedReader(new FileReader("file.txt"));
            Scanner diskScanner = new Scanner(file);
            //Create dynamic array list
            List<GeometricObject> list = new ArrayList<GeometricObject>();
            //Scan data and add data to list
            while(diskScanner.hasNext())
            {
                String geolist = diskScanner.nextLine();
                g = recreateObject(geolist);

                list.add(g);

            }


    }

        private static GeometricObject recreateObject(String data)
        {
            System.out.println(data);
        }

}

(И, очевидно, заставить его вернуть что-то.)

Другие вопросы по тегам