본문 바로가기

Language/Java

(10)
[Intellij] 라이브러리 설치하기 TDD 관련해서 hamcrest라는 라이브러리를 사용하려는데, 알고보니 개인적으로 설치해야 하는 것이였다. 그러고 보니 자바로 라이브러리를 설치하는 방법을 제대로 알고 있었던 적이 없어서 정리하고자한다. 1. 라이브러리 설치 이 때, jar 파일로 받는다. 2. 디렉토리 경로 C:\Program Files\Java\jdk1.8.0_201 에 파일을 이동 시킨다. 다만 굳이 그러지 않아도, 인텔리제이에서 설치파일을 풀어서 경로를 지정해줘서 상관은 없는거 같다. 3. 인텔리 제이에서의 추가 끝!
Stream Lombok 연습 예제 import lombok.AllArgsConstructor; import lombok.Data; import java.math.BigDecimal; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; import static java.util.stream.Collectors.*; public class Hello { public static void main(String[] args) { final List products = Arrays.asList( new Product(1L,"A",new Big..
[Java8] 커스텀 인터페이스 및 제네릭 메소드 만들어 보자. 엄청 헷갈린다. 하나씩 해보자. 숫자 세가지를 받고, 그 값들을 조합해 문자열로 출력하고 싶다면 다음과 같이 작성한다. 인터페이스에서 추상메소드에 들어갈 타입을 미리 선언하지 않는다. 대신 제네릭을 이용하여 다음과 같이 작성한다. interface Func{ public R apply(T1 t1, T2 t2, T3 t3); } 위 인터페이스는 어떠한 객체타입(R)으로 리턴을 받고, 입력할 파라미터는 각각 어떤타입(T1,T2,T3)를 입력받는다. public class GenericExample { public static void main(String[] args) { Func func = (a , b , c) -> String.valueOf((a+b+c)*2); //12 System.out.printl..
[Java8]Functional Interface public class FuntionalInterfaceExamples { public static void main(String[] args) { Integer value = toInt("100"); //100 } static Integer toInt(String str) { return Integer.parseInt(str); } } String을 Integer로 캐스팅 하는 함수를 만들었다. 1. Function import java.util.function.Function; public class FuntionalInterfaceExamples { final Function toInt = new Function() { @Override public Integer apply(String str) {..
[Java8] Strategy Pattern, FP, 1급 객체 사칙 연산을 해보자 public class cal { public static void main(String[] args) { int addResult = Calculator.add(1, 2); // 3 int subResult = Calculator.subtract(1, 2); // -1 int mulResult = Calculator.multiply(1, 2); // 2 int divResult = Calculator.divide(1, 2); // 0 } } class Calculator{ public static int add(int i, int j) { return i+j; } public static int subtract(int i, int j) { return i-j; } public sta..
[Java]Collection 객체 응용(2) 1. 리스트를 join을 이용하여 문자열로 바꿀때는 stream().collect를 이용하자! private static final List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); 다음과 같은 리스트가 있을때 1-2-3-4-5-6-7...-10 과 같은 문자열을 반환받고 싶다면 일반적으로는 다음과 같다. final StringBuilder stringBuilder1 = new StringBuilder(); final int size = numbers.size(); for (int i = 0; i < size; i++) { stringBuilder1.append(numbers.get(i)); if (i != size - 1) { stringBui..
[Java]Comparable, Comparator 자바스크립트 공부 할 때도 정렬이 서툴렀다. 그래서 헷갈리지 않게 제대로 정리하려고 한다. ...더보기 Comparable - 원래 기준이 있는 정렬 Comparator - 원래 기준이 없어서 새로 기준을 만들어야 하는 정렬 Comparable import java.util.Arrays; public class sorting { public static void main(String[] args) { // TODO Auto-generated method stub Student[] School = { new Student("Tom",90), new Student("Jim",112), new Student("Mije",990), new Student("Ann",390), }; Arrays.sort(Schoo..
[Java]Collection 객체 응용(1) Collection객체가 상당히 크기 때문에, 다 공부할 엄두가 나지 않는다. 하지만 방대한 크기만큼 다양한 문제를 해결할 가능성이 있지 않나 싶다. 그래서 몇 번에 걸쳐 유용한 패턴들을 정리하고자 한다. 1. Collection의 자료구조에 다른 타입들을 넣어야 한다면 DTO객체를 만들자. 다음과 같이 작성하려면 일단 모두 다른 타입이기 때문에 List 앞에 제네릭을 추가해 줄 수 없다. 사실 아무 값도 입력하지 않아도 생성되는 이유는 가 자동으로 붙기 때문이라고 한다. 그 말은 즉슨 위의 값들은 모두 Object가 된다는 의미이다. 이는 원하지 않는 타입변경이 되는데 이는 다음과 같은 오류를 빈번히 발생시킨다. 그렇기 때문에 보통은 DTO객체를 사용한다고 한다. DTO란 계층간 데이터 교환을 위한 J..