공통 메서드 중 가장많이 사용하는 isEmpty 메서드를 소개한다.

 

null or not null 을 먼저 판별한 후

 

각 어떤 클래스인지 instanceof로 판단 뒤 각 클래스에 선언된 메서드를 이용하여 판별한다.

 

Java isEmpty 메서드

/**
 * obj가 null 혹은 비어있는지 비교
 * 
 * @params Object obj
 * @return boolean
 * @apiNote Custom.isEmpty(obj)
 *
 */
public static boolean isEmpty(Object obj){
    // null 이라면
    if (obj == null)
        return true;

    // String 이라면
    if (obj instanceof String)
        return ("".equals(((String) obj).trim()));

    // Map이라면
    if (obj instanceof Map)
        return ((Map<?,?>) obj).isEmpty();

    // List라면
    if (obj instanceof List)
        return ((List<?>) obj).isEmpty();

    // Object 배열이라면..
    if (obj instanceof Object[])
        return (((Object[]) obj).length == 0);

    return false;
}

 

프로젝트 중 문자 전송 관련하여 개발했을 때,

 

문자 내용 길이에 따라, SMS/LMS/MMS 기준으로 전송해야할 때가 있었다.

 

웹 검색 중 Byte 계산에 대한 1byte, 2byte 등 기준이 애매한게 많았다.

 

숫자, 영문, 띄어쓰기, 줄바꿈 등은 1byte

 

한글, 특수문자 등은 2byte로 계산하는것을 작성하였고, 추후에 필요할까 싶어 기록해놓는다.

 

public static int getByteLength(String str) {
    int bytes = 0;
    if (str == null) {

        return bytes;

    } else {

        char[] strChar = str.toCharArray();
        char ch; int code;

        for (int i = 0; i < strChar.length; i++;) {
            ch = strChar[i];
            code = (int) ch;

            // 2bytes
            if ((ch < '0' || ch > '9') && (ch < 'A' || ch > 'Z') && code > 255) bytes += 2;
            // 1bytes
            else bytes +=1;
        }

        return bytes;

    }
}

 

 

Byte 계산 (영문, 숫자, 공백 = 1byte, 그 이외 한글, 한문, 특수문자 등 = 2byte)

 

import com.fasterxml.jackson.core.type.TypeReference;

import com.fasterxml.jackson.databind.ObjectMapper;

 

private final static ObjectMapper objectMapper = new ObjectMapper();

 

/**
 *
 * 어떤 특정한 Json String 값을 TypeReference<T>로 번형
 *
 * @param HttpServletRequest request, String jsonKey, TypeReference<T> typeReference
 * @return Map<String, Object>
 * @throws Exception
 **/

public static <T> T convertJsonToObject(String jsonStr, TypeReference<T> typeReference) throws Exception {
    return objectMapper.readValue(jsonStr, typeReference);

}

Object To Json

 

/**
 * Object to JsonString
 * 
 * @param Object obj
 * @return String
 * @throws Exception
 */

public static String getObjectToJson(Object obj) throws Exception {

    // Object isEmpty 판별
     if( isEmpty(obj) ){
         return "";
     } else {
         ObjectMapper mapper = new ObjectMapper();
         return mapper.writeValueAsString(obj);
     }
}

+ Recent posts