Java 10

[Java] 구글 드라이브 최신문서함 조건 (쿼리, 매개변수)

구글 드라이브 > 최신문서함  과 같은 리스트를 구현하는데 애를 좀 먹었습니다...  (Google Drive Activity API 까지 본건 비밀)  query = "mimeType != 'application/vnd.google-apps.folder' and trashed = false"; orderBy = "viewedByMeTime desc"; FileList result = service.files().list() .setQ(query) .setCorpora("allDrives") // corpora를 매개변수로 설정 .setIncludeItemsFromAllDrives(true) ..

Java 2024.10.10

[Java] 문자열 비교 .equals 제대로 사용하기(feat.Null)

코드를 작성하다보면 문자열 비교 메서드 .equals 를 종종 사용하게 되는데 사용법은 다음과 같습니다. String zz = "AA"; zz.equals("AA") = true zz.equals("AB") = false 그런데 만약 체크하려는 변수(zz)에 Null이 있다면 어떻게 될까요?? NullPointerException이 발생할 것 입니다. String zz = null; zz.equals("AA") -> NullPointerException 그러면 앞에 Null에 대한 체크를 해야할까요?? 아닙니다. 순서를 바꿔주기만 해도 null-safe하게 처리할 수 있습니다. String zz = null; "AA".equals(zz) = false 요약 : NullPointerException을 피하..

Java 2023.02.22

[Java] String의 숫자 여부 판별하기(StringUtils, NumberUtils, Method)

Java에서 String이 숫자인지를 판별하기 위해 여러가지 편리한 유틸이 있습니다. 제가 시도하다가 성공한 것과 안된 것들 모두 알아보겠습니다. (2023.02.07 - gradle 기준 작성) 1. NumberUtils.isCreatable import org.apache.commons.lang3.math.NumberUtils; Boolean b = NumberUtils.isCreatable("123"); 2. Plain Java private boolean isNumeric(String strNum){ if(strNum == null){ return false; } try{ double d = Double.parseDouble(strNum); }catch (NumberFormatException n..

Java 2023.02.07

[Java] Integer → int 캐스팅하기(Integer to int)

Json에서 나타낼 수 있는 숫자의 종류는 다음과 같습니다. 1. 정수(integer) 2. 실수(fraction) 3. 지수(exponent) 그 중 정수로 받는 경우를 알아보겠습니다. Json ex) { "age" : 20 } 위와 같은 Json을 받으면 데이터타입이 'Integer' 로 'int'의 래퍼클래스입니다. 이 Integer를 int로 캐스팅해보겠습니다. 방법 1. int test = (int)json.get("age"); 방법 2. Integer temp = (Integer) json.get("age"); int age = temp.intValue(); 참조타입에서 원시타입으로 캐스팅할 때는 '방법 1' 처럼 사용하시면 됩니다. 이유를 모르겠지만, 강제 캐스팅이 안먹힐 때가 있는데 그때는..

Java 2023.01.11

[Java] for문 vs 향상된(개선된) for문

코드를 작성하다가 스크롤 바에 노란색 줄과 경고창(?)이 떠서 뭐가 문제인지 살펴봤습니다. List testdtoList = abc(5); for(int i = 0; i < testdtoList.size(); i++){ int zz = testdtoList.get(i).getNumber(); } 엥? 뭐 추천도 아니고 왜 바꿀 수 있다고 뜨는거지...??? 뭐 일단 클릭 해볼까.... 클릭!! List testdtoList = abc(5); for(TestDTO testDto : testdtoList){ int zz = testdto.getNumber(); } 경고등은 사라졌지만 의문은 사라지지 않았습니다. 대체 뭐가 다르다고 기분 찝찝하게 노란색이 뜨고 그러지?? 성능이 엄청나게 차이나나?? - No!..

Java 2022.12.30

[Java] Array / List / ArrayList 차이점

시니어 분들과 작업하다보니 하나하나 더 신경쓰게 되고 더 검색하게 되고 더 공부가 되네요.(but, 속도↓ 시간투자↑) DB에서 데이터를 조회할 때, 동적으로 배열/리스트에 데이터를 받아야 할 때가 있습니다. Java에서 사용할 수 있는 자료구조는 Array / List / ArrayList가 있습니다. 그러면 '언제 뭘 써야하고 이유는 무엇일까?'라는 생각이 들어 공부 겸 정리를 해보려고 합니다. 1. Array(배열) 장점 index는 값에 대한 유일무이한 식별자 → 인덱스를 통한 검색이 용이함. 연속된 메모리의 공간으로 이루어져 있다. → 연속적이므로 메모리 관리가 효율적이다. 단점 정적이므로 배열의 크기를 컴파일 이전에 정해주어야 한다. → 컴파일 이후 배열의 크기를 변동 할 수 없다. 이로 인해..

Java 2022.12.13

[IntelliJ] 인텔리제이 주석 안됨 현상 해결 방법!("/", "¿")

IntelliJ를 사용하다 보면 주석이 안되는 경우가 발생합니다. (주석 단축키가 잘 되다가 Unity, vsc에서 작업 좀 하다오니 안되더라구요...) 일단 크게 두가지 방법이 있습니다. 1. "한/영" 키를 누른다. 임시방편입니다. 다른 작업에서 "한/영" 변환키가 엉켜있을 경우 주석 할 때마다 변환해줘야합니다. 2. 윈도우 한글입력방법 전환 !! 윈도우 오른쪽 하단에 보시면 "한" 이라는 아이콘 클릭 후 "한국어 - Microsoft 입력기" 를 클릭하면 해결!!

Java 2022.09.13

[Java] StringUtils.hasText, isEmpty, isBlank 비교하기

개발할 때 String 값이 null, "", whitespace 인지 체크해야할 경우가 있습니다. Java에서는 위와 같은 값들을 걸러내는 여러가지 방법이 있지만 위 3개를 가장 많이들 찾아보고 사용해오셨을거라고 생각합니다. 그렇다면 위 3개는 어떤 차이점이 있을까?? 간단하게 정리하자면, isEmpty → "", null, whitespace 체크! → 3개중 해당사항이 있다면 return true. isBlank → "", null 체크! → 2개중 해당사항이 있다면 return true. hasText → "", null, whitespace 체크! → 3개중 해당사항이 있다면 return true. ('그럼 isEmpty나 hasText를 사용하면 되겠군..!') 위 예제를 보면, 나머지 케이스..

Java 2022.08.05