我尝试创建一个私有方法,如果传入的其他方法的值为null,则无论传入的参数类型是什么,我都会抛出异常。所以说在构造函数中,您有以下代码:
public void add(int num) {
exceptionCreator(num);
}
public void print(String something) {
exceptionCreator(something);
}
public void gamePiece(customObject blah) {
exceptionCreator(blah);
}
private void exceptionCreator([A type that works with all of them] sample) {
if(sample == null) {
throw new IllegalArgumentException();
}
}
如何在不创建类似参数的一堆抛出的情况下使其与不同类型一起使用?
答案 0 :(得分:1)
int
不是引用类型,因此不能是null
。您的其他两个(String
和customObject
[应为CustomObject
])是引用类型,因此它们可以是null
。
所有引用类型的基本类型均为Object
,因此您需要exceptionCreator
。虽然用int
(因为自动装箱)调用它会起作用,但它永远不会抛出是毫无意义的。
所以:
public void add(int num) {
// Possible but pointless; it will never throw
exceptionCreator(num);
}
public void print(String something) {
exceptionCreator(something);
}
public void gamePiece(CustomObject blah) {
exceptionCreator(blah);
}
private void exceptionCreator(Object sample) {
if (sample == null) {
throw new IllegalArgumentException();
}
}