2016-04-10 2 views
0

Допустим мы имеем следующий код:создать метод, который проверить другой объект, если нулевой бросок исключением

public void a(String a) { 
    if (a == null) { 
     throw new IllegalArgumentException(); 
    } 
} 

public void b(Queue<Integer> b) { 
    if (b == null) { 
     throw new IllegalArgumentException(); 
    } 
} 

public void c(Stack<Integer> c) { 
    if (c == null) { 
     throw new IllegalArgumentException(); 
    } 
} 

Можно ли написать метод, сделать работу бросить новое исключение ? Это примерно так:

public void a(String a) { 
    check(a); 
} 

public void b(Queue<Integer> b) { 
    check(b); 
} 

public void c(Stack<Integer> c) { 
    check(c); 
} 

Обратите внимание, что их типы параметров не совпадают.

+1

'недействительным проверка (Object о) { если (о == NULL) { певд IllegalArgumentException(); } } ' ? –

ответ

1

вы можете быть более общим, как:

public void check(Object a) { 
    if (a == null) { 
     throw new IllegalArgumentException(); 
    } 
} 
+0

Это вполне адекватно; но обратите внимание, как [Guava 'Preconditions.checkNotNull'] (http://grepcode.com/file/repo1.maven.org/maven2/com.google.guava/guava/19.0-rc1/com/google/common/base/ Preconditions.java/#210) реализуется с помощью дженериков, чтобы вы могли написать что-то вроде 'this.a = check (a);'. –

Смежные вопросы