본문 바로가기

카테고리 없음

우스운 착각

반응형

가끔 황당한 코드를 짜서 왜 안되지 하는 경우가 있습니다.
오늘도 코드를 작성하다 착각을 하였습니다.

다음과 같은 경우 입니다.

public class Common{
 FileLoader fileLoader = new FileLoader(fileList.getFileList());
 FileWriter fileWriter= new FileWriter(fileLoader.getResult());
 Common() {
  fileLoader.loadFiles();
  fileWriter.writeResult();
 }
}

파일을 읽어다가 쓰는 걸로 착각 햇습니다.

하지만 위의 코드는 이런 결과 입니다.
먼저 fileLoader가 죽어라 파일을 읽습니다.
그리고 어딘가 읽은 파일을 저장하고 결과를 추출합니다.
음.. 결과를 추출한다는 부분이 명시적이진 않군요.

그리고는 fileWriter는 읽은 파일의 결과를 쓰는게 아니고...
그냥 아직 파일을 읽기 전의 비어있는 Result 의 반환 객체를 읽어다가 씁니다.

결국 빈 녀석을 쓴겁니다.

흠.. 그런데...
위의 new FileLoader 할때 객체가 생성되니 fw는 값을 가지고 있어야 하는데 ㅡ.ㅡ;
음.. 맞는데.. ㅡㅡ;
착각한게 아닌거 같은데..

아 그렇군요..
FileLoader 생성자에서 loadFile을 한게 아니군요.
fileLoader 객체가 생성된 후 그것을 기초로 fileWriter 객체를 생성하고
그 후 fileLoader는 loading을 한거고
그것과는 별개로 생성자에서 생성된 fileLoader를 기준으로 fileWrite를 하니..
값이 안나오는 거죠 ㅡㅡ;

이런...착각을 하다니 ㅋ

결국 fileLoader 생성할때 loadfile 하고 Common에는 Write만 하면 되는 군요. ㅋ

반응형