luxury515
1k
2019-04-08 12:48:10
3
328

어이없는 질문이입니다만 설명부탁 드립니다.



public Map<String,Object> Test(){

        Map<String,Object> map = new HashMap();
        map.put("test1",1);

        //return (Map<String, Object>) map.put("test2",2);
        return map;
    }

    public static void main(String args[]){
        ObjectTest n = new ObjectTest();
        Map<String, Object> a =n.Test();

        System.out.println(a);
    }

위와같은 코드에서 

return (Map<String, Object>) map.put("test2",2);

하면 결과값이 null 나오는 이유는 무엇인가요?
return 에서는  map.put 이런상태로 안되는가요?

return map.put("test2",2)  오브젝트 타입이라고 하면서 Map상태로 캐스팅해야 된다고하는데...

return map vs map.put("","")   왜 다른가요?

혹시 이해하기 쉽게 설명해주실분 있나요. ^^ 




0
0
  • 답변 3

  • siva6
    4k
    2019-04-08 12:56:48

    return map; 은 map은 반환하겠다은 의미입니다.

    return map.get('xxx'); 는 map에서 xxx의 value를 받아서 반환하겠다는 의미입니다.

    map.put(...) 을 하고 그 return 값을 반환하게 되는 거죠.

    Object result = map.put("test2", 2);
    return result;

    와 같은 구문입니다.

    0
  • KDH0110
    150
    2019-04-08 13:13:11

    결과값 null인 이유는 현재 맵에 test2라는 키에 해당하는 value가 없기 때문에 null이 나오는것입니다.

    map.put의 리턴값은 해당키의 이전 value, 없을시 null 입니다.


    return에서 map.put이 안되는 이유는 map.put 리턴값은 Object인데 Test()의 리턴값은 Map<String, Object>이여서 타입 오류입니다.

    0
  • 배우고싶은이
    734
    2019-04-08 13:15:46
    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.