импортировать класс Java из файла Java, который содержит несколько классов - PullRequest
0 голосов
/ 04 октября 2019

Я сталкиваюсь с ситуацией, когда я создал несколько классов для пользовательского исключения в одном файле Java. как следует

    public class IllegalArgumentException extends Throwable {
        public IllegalArgumentException(String exceptionString) {
            super(exceptionString);
        }
    }

    class InvalidDirectoryException extends Throwable {
        public InvalidDirectoryException(String exceptionString) {
            super(exceptionString);
        }
    }

    class InvalidJsonFormatException extends Throwable {
        public InvalidJsonFormatException(String exceptionString) {
            super(exceptionString);
        }
    }

    class InvalidFileTypeException extends Throwable {
        public InvalidFileTypeException(String exceptionString) {
            super(exceptionString);
        }
    }

, когда я пытаюсь импортировать один из классов, он не разрешается. Я могу импортировать только класс IllegalArgumentException. Я не хочу делать несколько файлов Java для каждого класса. Так есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

Создайте один общедоступный класс и поместите все остальные классы как внутренние классы внутри основного общедоступного класса.

Пример:

public class AllExeptions{

   class IllegalArgumentException extends Throwable {
        public IllegalArgumentException(String exceptionString) {
            super(exceptionString);
        }
    }

    class InvalidDirectoryException extends Throwable {
        public InvalidDirectoryException(String exceptionString) {
            super(exceptionString);
        }
    }

    class InvalidJsonFormatException extends Throwable {
        public InvalidJsonFormatException(String exceptionString) {
            super(exceptionString);
        }
    }

    class InvalidFileTypeException extends Throwable {
        public InvalidFileTypeException(String exceptionString) {
            super(exceptionString);
        }
    }
}

Если вы не знакомы с внутренним классом Java,тогда я рекомендую вам этот учебник по внутренним классам nince от TutorialsPoint: https://www.tutorialspoint.com/java/java_innerclasses.htm

0 голосов
/ 04 октября 2019

Я не хочу создавать несколько java-файлов для каждого класса.

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

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

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