전체 글
nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.ArrayList
프론트쪽에서 ajax로 contoller쪽에 요청 시 json형태로 리턴해줄때(ResponseBody)사용 시 spring - 트러블 슈팅 - Controller에서 객체 반환 시 json으로 변환이 되지 않는 경우 nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.ArrayList 위와 같은 에러가 발생한다. 해결방법으로는 0. 객체를 json형태로 변환 할 수 있는 jackson 라이브러리 다운로드 (jackson-databind) cohttp://m.fasterxml.jackson.core jackson-core 2.9..
[전자정부프레임워크] 스케줄링
1) MAVEN 활용 시 (pom.xml) org.quartz-scheduler quartz 2.1.7 slf4j-api org.slf4j org.quartz-scheduler quartz-jobs 2.2.1 * maven을 사용하지 않는다면 관련 라이브러리 파일을 WEB-INF/lib에 넣어주면 된다. 2) context-quartz.xml 생성( 경로 및 파일명은 web.xml 설정파일 참조하여 생성 ) 스케줄러에서 활용될 service, serviceImpl, dao, vo, xml 등등의 객체생성 실제로 생성되어 실행될 메소드를 들고있는 클래스에는 @service("quartz")를 선언해주어야한다. 참고 : https://egovframe.go.kr/wiki/doku.php?id=egovfram..
[JAVA] instanceof (객체 타입 확인)
T1) instanceof 연산자 매개변수의 다형성으로 인해 실제로 어떤 객체가 매개값으로 활용되고있는지 확인하는 방법 매개변수 뿐만 아니라 변수가 참조하는 객체의 타입을 확인하고자할때 활용 instanceof 연산자의 좌항에는 객체가 오고 우항에는 타입이 온다. 타입이 같으면 true 아니면 false Java 12부터는 instanceof연산의 결과가 true일 경우, 우측 타입 변수를 사용할 수 있기때문에 강제타입변환을 하지않아도 된다. /*기본형태*/ boolean result = 객체 instanceof 타입; // 자바 12 이전 : 깅제 타입 변환 필요 public void method(Parent parent) { if(parent instanceof Child) { Child child ..
[JAVA] 이클립스 오버라이딩 메소드 자동 생성 기능
이클립스는 오버라이딩 메소드를 자동 생성해주는 기능이 있다. 이 기능은 부모 메소드의 시그너처를 정확히 모를 경우 매우 유용하게 사용할 수 있다. 1. 자식 클래스에서 오버라이딩 메소드를 작성할 위치로 입력 커서를 옮긴다. 2. 메뉴에서 [Source] - [Override/Implement Methods]를 선택한다. 3. 부모 클래스에서 오버라이딩될 메소드를 선택하고 [OK] 버튼을 클릭한다. 오버라이딩 가벼운 정리 2023.11.22 - [📆 Today I Learned(개발언어학습)/JAVA] - [JAVA] 메소드 재정의 (메소드 오버라이딩)
[JAVA] 메소드 재정의 (메소드 오버라이딩)
메소드 오버라이딩(Overriding) 상속된 메소드를 자식 클래스에서 재정의하는 것이다. 메소드 오버리이딩 시 해당 부모 메소드는 숨겨지고, 자식 메소드가 우선적으로 사용된다. 부모 메소드의 선언부(리턴 타입, 메소드 이름, 매개변수)와 동일해야 한다. 접근 제한을 더 강하게 오버라이딩할 수 없다.(public → private으로 변경 불가) 새로운 예외를 throws할 수 없다. 부모 메소드 호출 메소드를 재정의하면, 부모 메소드는 숨겨지고 자식 메소드만 사용되기 때문에 오버라이딩된 메소드에서 중복된 코드를 작성하게 될 수 있는데 이 문제는 자식 메소드에서 메소드 오버라이딩할 때 해당 메소드에 부모의 메소드를 호출하면된다. ( super키워드와 도트(.)연산자 사용 ) public class Air..
[JAVA] import 문 자동 추가 기능
이클립스는 소스에서 사용한 클래스를 조사해서 필요한 import 문을 자동으로 추가하는 기능을 제공한다. 1. 기본적으로 'import 전체클래스이름;'으로 추가하려면 다음과 같이 선택한다. 상단 메뉴 - [Source] - [Organize imports] (단축키 : Ctrl + Shift + O ) 2. 'import 패키지.*;' 로 추가되길 원한다면 다음과 같이 이클립스 설정을 변경한다. 상단 메뉴 - [Window] - [Preference] - [Java] - [Code Style] - [Organize imports] - Number of imports needed for.*의 99를 1로 변경 출처:이것이 자바다(교육 현장에서 가장 많이 쓰이는 JAVA 프로그래밍의 기본서) https:/..
[JAVA] 가변길이 매개변수
매개변수의 개수가 매번 바뀐다면? 메소드 오버로딩을 계속해야될까? 아니다. 메소드를 호출할 때 매개변수의 개수에 상관없이 호출하기를 원한다면 가변길이 매개변수를 가진 메소드를 선언한다. int sum(int ··· values) { } 가변길이 매개변수는 메소드 호출 시 매개값을 쉼표로 구분해서 개수와 상관없이 사용할 수 있다. int result = sum(1,2,3); int result = sum(1,2,3,4,5); 매개값들은 자동으로 배열 항목으로 변환되어 메소드에서 사용된다. 그렇기 때문에 메소드 호출 시 직접 배열을 매개값으로 사용해도 된다. int[] values = { 1, 2, 3 }; int result = sum(values); // OR int result1 = sum(new in..
[JAVA] 배열(Array)
T1 ) 배열(Array) 기본특징 기본적으로 변수는 하나의 값만 저장할 수 있다. 그렇기 떄문에 저장해서 사용해야하는 값이 늘어날수록 비효율적으로 코드를 작성하게 될 것이다. 배열은 많은 양의 값을 효율적으로 다루기 위해 사용할 수 있는 방법이다. 배열은 연속된 공간에 값을 나열시키고, 각 값에 인덱스(index)를 부여해 놓은 자료구조이다.(0부터 시작) 배열은 같은 타입의 값만 관리한다. ( int배열은 int타입의 값만, String배열은 문자열만 ) 배열의 길이는 늘리거나 줄일 수 없다. ( 배열은 생성과 동시에 길이가 결정된다. ) 배열 변수는 참조 변수이다. 배열도 객체이므로 힙 영역에 생성되고 배열 변수는 힙영역의 배열 주소를 저장한다. 참조할 배열이 없다면 배열 변수도 null로 초기화할..