簡體   English   中英

從包含多個類的 java 文件導入 java class

[英]import a java class from a java file which contains multiple classes

我正在經歷一種情況,我在單個 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);
        }
    }

當我嘗試導入 class 之一時,它沒有解決。 我只能導入 IllegalArgumentException class。 我不想為每個 class 制作多個 java 文件。 那么有沒有辦法做到呢?

我不想為每個 class 制作多個 java 文件。

如果您想從其他軟件包訪問它們,則必須這樣做。 在 Java 中,每個文件必須只有一個公共 class。 這是一條規則。 您不希望為每個 class 使用單獨的文件可能有正當的理由,但 Java 並不關心這一點。

您可以嘗試在單個外部 class 中創建每個 static 內部類,然后使用import static ,但這是一種不好的做法,因為我會鼓勵使用內部類的目的,所以我會濫用. 但你可以。

創建一個通用公共 class 並將所有其他類作為內部類放入主公共 class 中。

例子:

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);
        }
    }
}

If you are not familiar with the Java inner class, then I recommend you this nince inner class tutorial by TutorialsPoint: https://www.tutorialspoint.com/java/java_innerclasses.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM