ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] toString, (String), String.valueOf() 문자열 형변환 살펴보기
    프로그래밍 언어/JAVA 2022. 11. 17. 10:41

     

    형변환,, 매번 내게 질문을 준다.  한 번 제대로 정리해두면 헷갈리지 않을 것 같아 이번 기회로 정리해보려고 한다. 컨트롤러에서 파라미터로 넘어온 값을 Map<String,Object> 형태로 저장한 paramMap과 sesstion에서 값을 가져오려고 한다. 가져온 값들 2개는 둘다 Object 형태이다. 근데 loginId는 (String)으로 형변환을 하고 action은 String.valuOf 로 형변환을 했다. 이 둘의 차이점은 무엇일까??

     

    //세션에서 가져온 값은 Object형태로 저장된다.  
    String loginId =(String)session.getAttribute("loginId");
    //paramMap의 value 값 형태는 Object이다.
    String action = String.valueOf(paramMap.get("action"));

     

     

    📑 String casting -> (String)으로 형변환

     

    (String)으로 형변환 하는 것을 말하며 대상 Object가 실제 문자열이여야 가능하다.만약 문자가 아닌 숫자면 예외 발생! 

    null값을 변환하면 "null"이 된다. 

     

    classCastException

    Object noString = new Integer(12);
    String str = (String)noString;

     

     

     

    📑 toString()

     

     public String toString()

    : 모든 래퍼 클래스는 toString() 메서드를 가진다. 래퍼 객체를 String 타입으로 형변환 해주는 것. 즉) Object(Wrapper class[Integer, Character, Double .,,,])의 데이터를 String 문자열로 바꿔준다. toString()은 메서드 이므로 기본 자료형(PrimitiveType)은 사용할 수 없다. 만약 null값을 형변환 하면 NullPointerException이 발생한다. 

     

    래퍼 타입 객체란? 기본 타입에 해당하는 데이터를 객체로 포장해주는 클래스이다. 

     

     

     

    📑 String.valueOf()

     

    : 파라미터로 들어오는 Object(int, boolean, double,,,)등을 어떤 값이라도 String 문자열로 바꿔준다. 파라미터가 null이라면 String 문자열로 "null"을 반환하며, null이 아니라면 toString()으로 함수 값을 반환한다. 

     

    String str = String.valueOf(new Integer(12));//"12"
    String str2 = String.valueOf(null);//"null"
    반응형

    댓글

Designed by Tistory.