이또한지나가리라
149
2018-08-29 16:43:52
4
377

배열의 값을 DTO에 저동(?)으로 넣을 수 있는 방법이 없을까요?


안녕하세요 미친듯이 비가 온 후로 한층 더 선선해진 날씨에 감기 조심하세요

다름이 아니라 배열에 있는 값을 DTO (혹은 VO)에 자동(?)으로 값을 넣을 수 있는 방법이 없는지 궁금해서 질문 드려요

DTO (혹은 VO)에 입력되어진 값을 빼내오는건 구글에서 찾았는데 반대로 넣는 방법은 쉽게 찾이지질 않네요


예제)

TestDTO.java

private String a;

private String b;

생성자()

getter / setter / toString 매소드 존재

이런 DTO가 있다고 했을때 구글에서 찾은 로직(?)을 사용하면 a, b 값을 쉽게 빼올 수 있더라구요


구글에서 찾은 로직

try{

    Object obj = TestDTO;

    for (Field field : obj.getClass().getDeclaredFields()){

        field.setAccessible(true);

        Object value = field.get(obj);

        System.out.printnl(value); // a, b 변수에 값을 구해와서 출력해줌

    }

}catch (Exception e){

    e.printStackTrace();

}

이렇게하면 TestDTO에 있는 a, b 변수(?)의 값을 잡아 올 수 있는데

반대로 String[] testArray = {'1', '2'}; 이런 배열이 있다고 했을때 '1'의 값을 a변수에, '2'의 값을 b변수에 담는 방법이요

일일이 수동으로 TestDTO.setA(testArray[0]); 이렇게 할 수도 있지만 TestDTO의 변수가 수시로 늘어나거나 줄어들수가 있어서 그때마다 계속 수동으로 수정하지 않고 자동으로 됐으면 하는데

고수님들 방법을 아시면 힌트 좀 부탁 드릴께요

0
0
  • 답변 4

  • 안개짱
    2018-08-29 17:02:10

    리플랙트..

    모바일이라. ㅠㅠ

    함수 찾아서 인보크 하면 됩니다.

    0
  • 안개짱
    2018-08-29 17:03:03

    아.그냥 Beanutils 쓰시면 됩니다.

    저는 주로 아파치 패키지 사용합니다

    0
  • 이또한지나가리라
    149
    2018-08-29 18:59:45

    안개짱

    답변 감사해요

    말씀해 주신 리플랙트랑 아파치 패키지 Beanutils 찾아봤는데요

    리플랙트는 아직 잘 모르겠고... Beanutils은 DTO에서 DTO로 복사(?) 하는거 같아요

    제가 원하는건 배열의 값을 DTO  안으로 넣고 싶은 거거든요

    알려주신걸 제가 잘 못하는건지.. 햐...



    0
  • 이또한지나가리라
    149
    2018-08-30 07:58:06

    안개짱

    말씀해주신 리플랙트(?) 리플렉션(?) 쨌든 그걸로 해결했어요

    답변 감사합니다. 제가 단 위 댓글 지울까 하다가 이것도 나름 기록이지 싶어서 그냥 남겨둡니다 ㅎ




    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.