카테고리 : java
-
Generic Type으로 인스턴스 생성
java에서 Generic Type은 유용하고 다양한 곳에서 사용한다. 예를 들어 안드로이드에서 findViewById 사용시 Generics을 이용해 Type Casting 없애기처럼 사용도 가능하다. 이 글의 주제는 Generic Type으로 해당 class의 인스턴스를 얻는 방법에 대한 것이므로 Generic Type에 대한 기본적인 내용은 다루지 않는다(설명이 길다). 우선 class로 인스턴스를 생성하는 가장 기본적인 방법부터 보자. Class clazz = String.class; try { String a = (Stri
-
com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected an int but was 오류
GSON을 이용해서 JSON 데이터를 Parse하려고 할 때 아래와 같이 NumberFormatException이 발생할 수 있다. 이는 대부분의 경우 int의 최댓값을 넘어선 값을 int에 대입하려고 할 때 발생한다. com.android.volley.ParseError: com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected an int but was 4291611852 at line 1 column 143 path $.items[0].item
-
Android에서 runOnUiThread 작업이 종료 될 때까지 대기하기
아래에서 설명하고자 하는 내용을 뭐라고 표현 해야할지 몰라서 "Android에서 runOnUiThread 작업이 종료 될 때까지 대기하기"라고 글 제목을 정했다. 내용을 요약하자면 thread에서 wait()과 notify()를 이용해서 runOnUiThread 작업이 종료될 때까지 대기하도록 하는 것이다. 쉽게 말해서 runOnUiThread는 main thread에서 처리되므로 비동기로 처리되게 되는데 필요한 작업이 완료되기 전까지 다른 처리를 대기시키는 것이다. 이렇게 설명하는 것도 정확한 설명은 아니다. 그냥 내가 하고자 했
-
java setChunkedStreamingMode를 php-fpm 서버와 연결할 때 발생하는 문제
ACRA : Please configure 'buildConfigClass' in your ACRA config 오류에서 http 접속시 setChunkedStreamingMode를 사용하면 request의 body가 수신되지 못하는 문제를 언급하고 Github에 issue로 등록 했었다. 그런데 어제 ACRA로 부터 답변을 받았다. 간단히 요약하자면 "일반적인 상황에 대한 문제가 아니므로 수정 해 줄 수 없다."라는 것이다. 게다가 자신의 생각을 바꾸려면 정당한 근거를 제시하란다. 안그래도 영어가 안되서 겨우 report했는데 근
-
java reflection을 사용해서 private static final field 변경하기
java에서 final로 지정한 것은 당연히 변경을 하지 말라는 뜻이다. 하지만 간혹 작업을 하다보면 그 값을 수정하고 싶을 때가 있다. 이번에도 안드로이드 작업을 하던 중 중요한 값도 아닐뿐아니라 유연성을 위해 값 변경이 필요한 값을 상수라는 이유만으로 final을 붙여 놓은 필드가 있었다.(아마도 자바 개발자들의 습관인 것 같다.) 그래서 관련된 내용을 검색하던 중 해답을 알려주는 내용을 찾았다. http://stackoverflow.com/questions/3301635/change-private-static-final-fie