1
我有下面的方法來傳遞可變參數作爲輸入。我試圖避免HeapPollution,所以除了使用Suppresswarnings進行註釋外,我還想確保我驗證每個參數的類都是相同的,或者是類的後代。我的問題是,如果我發現類不匹配我想返回false;使用ForEach方法(只返回無效,我可以做一個返回。有沒有辦法通過返回false直接從我的ForEach循環退出?我不想使用增強的For循環[因爲我正在學習forEach: - )]但實現我想要的ForEach方法和lambda表達式。有沒有辦法?如何從Java 8的ForEach方法中返回一個值
感謝您提供的任何幫助!
public final <T> boolean exists(T valueToCheck, @SuppressWarnings("unchecked") T... listOfPossibleValues) {
if (valueToCheck == null) return false;
Arrays.asList(listOfPossibleValues).forEach((T value) ->
{ if (!(valueToCheck.getClass().isAssignableFrom(value.getClass()))) return; else System.out.println(value.getClass()); });
for (T value : listOfPossibleValues){
if (value != null) {
if (value.equals(valueToCheck)) return true;
}
}
return false;
}