출처 : http://okky.kr/article/329818 이 글은 자바 8 Stream API 를 아는 사람이 주의해야 할 것에 대해 쓰여진 글이지만 , 몰라도 상관없습니다.이 글 읽어보면 대충 이런거구나 알 수 있으니깐요. Java 8 Stream API 을 배워야하는 이유로 "가독성/간편성" 과 "성능/공짜점심" 으로 보통 꼽습니다. * 가독성 코어 자바1234567891011private static int sumIterator(List list) { Iterator it = list.iterator(); int sum = 0; while (it.hasNext()) { int num = it.next(); if (num > 10) { sum += num; } } return sum;} Stre..
> Using the Gradle PMD Plugin for Static Code Analysis> plugin 추가 [build.gradle파일]apply plugin: 'pmd' pmd {toolVersion = '5.4.1' ruleSetConfig = rootProject.resources.text.fromFile('etc/pmd/ruleset.xml') ignoreFailures = true} > ruleset.xml 파일 생성 > build task 실행 > gradlew clean build 결과]* build/reports/pmd 디렉토리 및 결과물 생성됨 * 기존 build/reports/buildDashboard/index.html 에 PMD 리포트 페이지 링크 생성됨 * PMD 결과 ..
> Using the Gradle Checkstyle Plugin for Code Style Reporting> plugin 추가 및 설정apply plugin: 'checkstyle' checkstyle {toolVersion = checkstyleVersionconfig = rootProject.resources.text.fromFile('etc/checkstyle/rules.xml')} > rules.xml 파일 생성> build task 실행> gradlew clean build 결과>* 아래와 같이 build/reports/checkstyle 디렉토리 및 결과물 생성 * 기존 buildDashBoard/index.html 에 checkstyle report 페이지 링크 생성* 아래와 같이 che..
> Using the Gradle Jacoco Plugin for Unit Test Code Coverage Reporting> plugin 적용 및 설정 [build.gradle파일]apply plugin: 'java'apply plugin: 'eclipse'apply plugin: 'spring-boot'apply plugin: 'project-report'apply plugin: 'build-dashboard'apply plugin: 'jacoco' ext { guavaVersion = '19.0' jadiraVersion = '4.0.0.GA' swaggerVersion = '2.3.0' jacocoVersion = '0.7.5.201505241946'} jacoco {toolVersion = j..
> Introduction to Gradle Project and Build Reports> project-report plugin 적용. [build.gradle 파일]apply plugin: 'java'apply plugin: 'eclipse'apply plugin: 'spring-boot'apply plugin: 'project-report' > taskReport task 실행> gradlew clean taskReport * 위 결과 수행 후 아래와 같이 tasks.txt 파일(프로젝트 gradle task들에 대한 설명) 생성됨. 예) ------------------------------------------------------------All tasks runnable from root ..
출처 : http://blog.javarouka.me/2011/09/new-string.html 캐릭터셋 변환에 대해 인터넷 블로그 등에 잘못 떠돌고 있는 괴담(?) 은아니고 괴코드(?) 가 있다. // 예상과는 다른 동작을 하는 코드 String convert = new String(message.getBytes("euc-kr"), "utf-8"); 이건 잘못된 API의 이해가 부른 오동작 코드 이다. String::getBytes 는 자바 내부에 관리되는 유니코드 문자열을 인자로 지정된 캐릭터셋의 바이트 배열로 반환하는 메서드이며, new String(바이트배열, 캐릭터셋) 생성자는 해당 바이트 배열을 주어진 캐릭터 셋으로 간주 하여 스트링을 만드는 생성자이다. 다음 예제를 보자 String d = ..
Java8 부터 class/object의 메소드를 first-class function 처럼 사용할 수 있다.즉, 메소드를 파라미터로 넘길 수 있다. 예)public class MethodReferenceExamples { public static void main(String[] args) {Arrays.asList(1,2,3,4,5)// .forEach(i -> System.out.println(i)); .forEach(System.out::println); // method referenceSystem.out.println(Arrays.asList(new BigDecimal("10.0"), new BigDecimal("23"), new BigDecimal("5")) .stream()// .sorte..
다음 중 한 가지 이상을 만족하는 함수- 파라미터로 함수를 받을 수 있다.- 결과값으로 함수를 리턴한다. 예제)public class HigherOrderFunctionExamples { public static void main(String[] args) {Function f1 = g -> g.apply(10);System.out.println(f1.apply(i -> "#" + i) // "#10"); Function f2 = i -> (i2 -> i + i2);System.out.println(f2.apply(1).apply(9) // 10);List list = Arrays.asList(1,2,3,4,5);List mappedList = map(list, i -> "#"+i);System.out...
출처] http://blog.doortts.com/134[dW Review] 함수형 언어로 가는 길 (상편)2010.09.27 08:30[Better SW Development] IBM dW 기사중에 바쁜 자바 프로그래머를 위한 스칼라 입문 이라는 멋지고 재미있는 연재글이 있습니다. 함수형 언어 중 하나인 스칼라에 대한 소개글인데, 바로 읽기에는 조금 어렵거나 지루할 수 있습니다. 특히나 처음 함수형 언어를 접하면 저와 동일하게 '으응? 뭐래?' 라는 식으로 제대로 읽기 어려울 것도 같다는 생각이 들었습니다. 관련해서 조금 돌아가지만 대신 차분히 접근할 수 있기 위해서 추가 글을 남겨봅니다. 군데군데 개인적인 사견이 많은 글이니 혹시라도 울컥!하진 마시고 적절히 걸러가면서 보세요. :) 붉게 빛나던 루비..
- Total
- Today
- Yesterday