본문 바로가기

소프트웨어/Android/Java/Ndk

Android] Java Generic을 이용한 Custom Log

https://github.com/ManSung-Kim/mantdu/blob/master/dbg_log/Dlog.java


매번 Log.d를 쓰기 귀찮아서 Dlog를 만들었다.

그런데 만들면서 매번 String으로 변환하는 작업을 하기가 귀찮아서 Generic을 이용해 Object를 상속받는(그러니깐 모든 Class)를 다 받아서 클래스 내부에서 String으로 변환을 하게 하였다.


변경 전

int testData = 0;

Log.d("mytag", testData+""); // +""을 빼먹으면 컴파일에러


변경 후

Dlog.d(testData);



package dbg_log;

import android.util.Log;
public final class Dlog {
private static String tag = "mstag";
public void setTag(String tag) {
Dlog.tag = tag;
}
public static int d(String msg) { // only String class
return Log.d(tag, msg);
}
public static <T extends Object> int d(T msg) { // Generic
return Log.d(tag, msg+"");
}
}