我正在尝试创建一个私有方法,如果为其他方法传递的任何值均为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();
}
}
如何在不创建大量类似参数的情况下使其与不同类型配合使用?
最佳答案
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();
}
}