Picture

Hi, I'm ogaclejapan.

Android Software Engineer at AbemaTV

学ぶぜ、Java8!!

JJUGイベント 「祝☆Java 8 Launch」(3/21) に参加してきました〜(・∀・)/
Stream APIとDate and Time APIの内容とか、Java8全く触ってなかったのでとても勉強になりました。
スピーカーの皆様、貴重な話ありがとうございました!

一応資料集めましたので、参加してない方は良かったらどうぞ。

  • 祝 Java SE 8 正式リリース Slide YouTube
  • 徹底解説!Project Lambdaのすべて リターンズ Slide YouTube
  • null書いたら負け!Java8コーディング作法 YouTube
  • Brand new Date and Time API YouTube
  • JavaFX – GUI by Illusion YouTube
  • from old Java to modern Java – reloaded YouTube
  • Raspberry Pi on Java ショートアップデート YouTube

※Youtube動画はTwitter4Jの作者で有名な株式会社サムライズム代表の山本さんが録画してくださったものです。

最初はHello world… いや、Maven Archetypeの作成だ!

さて、老害世代にならないためにJava8をちゃんと学んでいきませう♪

…ということで、まずはJava8を学ぶためにMavenプロジェクトの雛形を用意しました
やっぱライブラリとか含めるとMavenプロジェクトのほうが何かと便利だしさぁ…(;´∀`)

http://ogaclejapan.github.com/maven-archetypes/archetype-catalog.xml

  • GroupId: com.ogaclejapan
  • ArtifactId: java-archetype-quickstart
  • Version: 1.0.0

Mavenコマンドでプロジェクトを生成する

mvnコマンドが使えるなら、あとは対話形式で入力していくだけー(・´з`・)

#実際はパラメータ(-Dxx)部分も含めて1行で入力すること ※^は不要
mvn archetype:generate ^
-DarchetypeCatalog=http://ogaclejapan.github.com/maven-archetypes/archetype-catalog.xml ^
-DarchetypeGroupId=com.ogaclejapan ^
-DarchetypeArtifactId=java-archetype-quickstart ^
-DarchetypeVersion=1.0.0
# ...
# [INFO] Generating project in Interactive mode
# Define value for property 'groupId': : com.ogaclejapan
# Define value for property 'artifactId': : java8-app
# Define value for property 'version':  1.0-SNAPSHOT: : 1.0.0
# Define value for property 'package':  com.ogaclejapan: : (ENTER)
# Confirm properties configuration:
# groupId: com.ogaclejapan
# artifactId: java8-app
# version: 1.0.0
# package: com.ogaclejapan
#  Y: : Y

cd java8-app01/
tree .
# .
# ├── pom.xml
# └── src
#     ├── main
#     │   ├── java
#     │   │   └── com
#     │   │       └── example
#     │   │           └── Bootstrap.java
#     │   └── resources
#     │       └── logback.xml
#     └── test
#         ├── java
#         │   └── com
#         │       └── example
#         │           └── BootstrapTest.java
#         └── resources
#             └── logback-test.xml

mvn clean package
java -jar target/java8-app-1.0.0-jar-with-dependencies.jar

IntelliJ, Eclipseでプロジェクトを生成する

こちらを参考にアーキタイプを登録すればMavenプロジェクトの新規作成で選択できるはず。

https://github.com/ogaclejapan/maven-archetypes

NetBeansでプロジェクトを生成する

さ、さーせん、使ったことありません。。(´;ω;`)ブワッ

無駄にラムダでHello world

package com.ogaclejapan;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Application Bootstrap.
 */
public class Bootstrap {

    private static final Logger log = LoggerFactory.getLogger(Bootstrap.class);

    /**
     * @param args
     */
    public static void main(String[] args) {
        hello(() -> "world");
    }

    private static void hello(Echo echo) {
        log.info("hello {}!", echo.repeat());
    }

    private static interface Echo {
        String repeat();
    }

}

さぁ、Java8がんがるっぞ〜\(^o^)/
NO MORE 老害世代!!

Back to Top