package Exception;
public class Exceptions {
public class NoSpaceException extends RuntimeException {
public NoSpaceException(){
super("There is not enough room in the set for another element.");
}
}
public class NotValidTypeException extends NullPointerException {
public NotValidTypeException(){
super("You can only add strings to a set.");
}
}
public class NoItemException extends NullPointerException {
public NoItemException(){
super("There is no next element.");
}
}
}
我的其他班级对此软件包没有可见性。我还有其他三个可能抛出这些异常之一的类,并且我不想将无包声明上方的代码复制/粘贴到每个文件上。我想减少冗余并将其作为一个单独的文件。
如何使它们可见?
最佳答案
可以将内部类更改为静态,即:
public class Exceptions {
public static class NoSpaceException extends RuntimeException {
...
}
public static class NotValidTypeException extends RuntimeException {
...
}
public static class NoItemException extends RuntimeException {
...
}
}
或者,如果您不想更改任何内容,则可以通过Exceptions实例创建实例:
Exceptions exceptions = new Exceptions();RuntimeException e = exceptions.new NoItemException();
第一种方法是可取的。
另外请注意,请考虑扩展比RuntimeException更特定的类(例如IllegalArgumentException,IllegalStateExecption等)。
关于java - 创建异常类;其他类别的不可见性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22927532/