은 불가하다. 조금더 구체적으로 말하면 스트림 함수중 내부적으로 reduce()를 호출하는 경우에 불가능하다. 이렇게 설계한 배경은 조금더 찾아봐야 하겠지만 불가능한 이유는 다음과 같다. IntStream의 sum()의 구현체다 sum() 함수는 다음 순서대로 진행된다. sum() -> reduce() -> AbstractPiplie.evaluate() abstract class IntPipeline< E_IN > extends AbstractPipeline< E_IN , Integer , IntStream> implements IntStream { .... @Override public final int sum () { return reduce( 0 , Integer:: sum ) ; } ... @Override public final int reduce ( int identity , IntBinaryOperator op) { return evaluate(ReduceOps. makeInt (identity , op)) ; } } 그리고 evaluate함수는 상속받은 AbstractPipeLine에 구현되어있다. 처음 호출되었을때 해당 파이프라인의 linkedOrConsumed 를 true로 변환하고 이후에 호출되었을시 예외처리를 하게끔 되어있다. abstract class AbstractPipeline< E_IN , E_OUT , S extends BaseStream< E_OUT , S >> extends PipelineHelper< E_OUT > implements BaseStream< E_OUT , S > { private static final String MSG_STREAM_LIN...