Java
-
[Java] 자바 문자열로 된 수식 계산하기 - 스크립트 엔진Java/Java Library 2021. 2. 9. 14:41
문자열로 된 수식 계산하기 예를 들어 데이터에 "1+1" 이라는 스트링이 넘어올 경우 이 값의 결과값 2 가 필요한 경우가 있다. 이런 경우에 스크립트 엔진을 이용해 문자열을 계산하자 파싱안하고 스크립트 엔진으로 연산하기 import javax.script.ScriptEngineManager; import javax.script.ScriptEngine; public class Test { public static void main(String[] args) throws Exception{ ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine engine = mgr.getEngineByName("JavaScript"); String foo =..
-
[Gson] gson deserialize 파싱사용 이유 및 방법Java/Java Library 2021. 2. 1. 18:41
gson 을 사용할 떄 json 구조에 맞춰서 fromJson 메소드를 호출하면 자동으로 파싱을 해주지만, 종종 커스텀을 해서 파싱을 해야 할떄가 있다. 1. 해야하는 순간은 해당 데이터가 모두 동일한 포맷으로 파싱이 되어야 한다든지, EX) 공백 "" 스트링이 있으면 항상 null 로 치환, 또는 날짜가 포함된 경우 동일한 포맷으로 파싱해야 하는 경우. 2. 일반적인 방식으로 파싱이 어려운 경우 EX) json 객체의 키값이 가변적인 경우여서 객체명으로 파싱이 불가능할 경우 { "1234": { "name" : "cat" }, "5594": { "name": "dog" } } EX) 같은 json 키 이지만 값에 value 에 따라 파싱되는 객체 구조가 다를 경우 여기서 registerTypeAdapt..
-
[Java Library] gson casting 오류 com.google.gson.internal.LinkedTreeMap cannot be cast to my class - jsonlist 를 List 객체로 만들기Java/Java Library 2021. 1. 28. 15:42
Gson casting 오류 gson 을 사용하다 보면 __com.google.gson.internal.LinkedTreeMap cannot be cast to my class__ 이런 오류가 나는데, casting 을 사용하려고 하면 나는 오류다. Gson gson = new Gson(); list = gson.fromJson(jsonString, new TypeToken(){}.getType()); jsonString list 로 fromJson 하는 경우에 생기는 오류이다. 결론은 아래 메소드로 다시 json 변환 후 object 로 변환 하던지, 아니면 gson 파싱 객체를 casting하지 않도록 만들어야 한다. //array 를 json String 으로 변환 public static Stri..
-
sftp java 접속 라이브러리 jschJava/Java Library 2021. 1. 27. 18:04
SFTP 접속하는 라이브러리는 jsch 다. sftp: 내서버에서 다른 서버 22번 sftp 접속하는 방법이다. public class FTPUtil { private static Log logger = LogFactory.getLog(FTPUtil.class); private Session session = null; private Channel channel = null; private ChannelSftp channelSftp = null; // SFTP 서버연결 public void connect(String user, String url, String password) throws Exception{ logger.info(url); //JSch 객체 생성 JSch jsch = new JSch()..
-
[Java] 자바 클래스 와 객체 및 키워드Java/Java 기본 및 이론 2021. 1. 17. 20:05
클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 클래스란 클래스는 쉽게 설명하면 객체를 만들기 위한 틀 붕어빵은 하나의 객체로 이를 만들기 위한 붕어빵틀은 하나의 클래스로 설명할 수 있다. 이런 클래스는 class라는 키워드로 정의되며 각각 변수(속성)와 메서드(행위)를 가지게 된다. 클래스 요소 필드(field) - 필드는 해당 클래스 객체의 상태 속성을 나타내며, 멤버 변수라고도 불린다. 여기서 초기화하는 것을 필드 초기화 또는 명시적 초기화라고 한다. 인스턴스 변수 - 이름에서 알 수 있듯이 인스턴스가 갖는 변수이다. 그렇기에 인스턴스를 생성할 때 만들어진다. 서로 독립적인 값을 갖으므로 heap 영역에 할당되고 ..
-
[Java] 자바 기본 제어문 - 선택문, 반복문Java/Java 기본 및 이론 2021. 1. 11. 12:45
제어문 Java에서 코드는 위에서 아래 순으로 읽고 실행된다. 모든 일을 순차적으로 실행할 수 있다면 아무런 상관이 없겠지만, 어떤 코드를 반복해야 될 수도 있고 어떤 코드는 건너뛰는 등의 순서를 변경해야 되는 일이 발생한다. 이 때, 제어문을 사용하여 코드 실행 흐름을 제어할 수 있다.이러한 제어문은 선택문(if-then, if-then-else, switch)과, 반복문(for, while, do-while), 분기문(break, continue, return)으로 나뉜다. 선택문(Decision-making Statement) if-then if-then 문은 가장 기본적인 제어문중 하나로 지정한 조건이 만족할 시에 지정한 블록({}) 안에 있는 코드가 실행된다. if(조건식) { // 한 줄일 경..
-
[Java] junit5 설명 및 기본 사용 - junit4 와 5 비교Java/Java 기본 및 이론 2021. 1. 11. 11:55
JUnit 5란 문서에서는 JUnit 5는 크게 세가지 서브 프로젝트의 여러 모듈로 구성이 되어있다고 한다. JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintag -e Junit Platform JVM에서 테스트를 하기 위한 기초적인 역할을 담당 테스트를 하기 위한 TestEngine API 제공 JUnit 4(하위 버전) 기반 테스트 제공 Junit Jupiter JUnit 5에서 테스트 및 확장하기 위한 프로그래밍 모델과 확장 모델의 조합이다. Platform에서 사용하는 TestEngine은 Jupiter를 통해 제공하는 것이다. Jupiter API 는 Junit5 에 새롭게 추가된 API 들을 포함하고 있다. Junit Vintage 하위 버전들(J..
-
[Java] 자바의 연산자Java/Java 기본 및 이론 2021. 1. 7. 15:43
목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 산술 연산자 Binary Operator(이항) +, -, *, /, %(Modulo) ArithmeticException 발생 가능 Divide by zero Modulo by zero 비트 연산자 Binary Operator(이항) &(AND) |(OR) ^(XOR) >> (right SHIFT) >> (unsigned right SHIFT) : 비트값을 오른쪽으로 이동한 이후 왼쪽 공간은 모두 0로 채움, C/C++ 에 없음..