Java

execプラグイン まとめ

exec-maven-pluginについて 2つのゴールを持つ exec javaプログラムを含む複数のプログラムの実行 java javaプログラムの実行。 実行するJAVAバージョンは最新もしくは、$JAVA_HOME に依存する。 java goal pom.xml <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1</version></plugin>…

java.util.streamの使い方メモ reduce編

reduceメソッド <U> U reduce(U identity, BiFunction<U, ? super T, U> accumulator, BinaryOperator<U> combiner) U identity 累算器、合成器の初期値 BinFunction<U, ? super T, U> accumulator 累算器 BinaryOperator<U> combiner 結合器、順次ストリームのときは結果に影響を与えない 各パラメータ</u></u,></u></u,></u>…

ジェネリック 境界ワイルドカード型の整理

境界ワイルドカードは他のプログラミング言語には多分存在しない。 ただこれがあることで、メソッド間でデータのやり取りが楽になる。 役割 Javaのジェネリックは、型パラメーターが継承関係であっても異なる型になる。 つまり List<Number> と List<Integer> は型が異なり、</integer></number>…

Windowsでmavenが使用するJDKを変更する

環境変数 → ユーザー環境変数 以下を設定 JAVA_HOME = jdkを配置した場所

関数型インターフェース

関数(メソッド)を受け取る仕組み 匿名クラスによるインターフェースの実装をラムダ式で行えるようにした 定義 @FunctionalInterface interface Action<T, R> { R run(T input); } 抽象メソッドを一つ定義する 実装はしない 使用例 Action<String, Void> logger = (input) -> { Sy</string,></t,>…

匿名クラスについてのまとめ

匿名クラス (Anonymous Inner Classes) 概要 Java 7以降 クラスの定義とインスタンス化を同時に行う仕組み 使用方法として以下の2つがある 1. クラスの拡張 2. インターフェースの実装 1. クラスの拡張 匿名クラスによって、インスタンス化時に拡張を実装す…

Maven Archetypeの作成方法と利用方法

概要 mvn archetype:create-from-package コマンドで既存のプロジェクトからArchetypeを生成することができるが、 Mavenプロジェクト生成時に指定したPackage名に変更する必要がある。 ソースコードはこちら github.com Archetypeの生成 1. 既存のMavenプロ…

InputStreamReaderとOutputStreamWriterの役割

それぞれバイト列ストリームから他の文字列ストリーム(Reader/Writer系)へ変換するための橋渡しをする java.nio.charset.Charset によるエンコーディング指定が出来る ファイルの読み書きだけにおいては、 FileReader/ FileWriter の便利系クラスが用意され…

maven プロジェクトの作成 archtypeArtifactId を指定する

mvn archetype:generate だけで対話形式でプロジェクトを作成すると、 元となる archetype の選択に 2300 以上の選択肢が表示されてしまう。 生成時に、 archetypeArtifactId を指定することで、回避することができる。 コマンドラインツールを作成する時 ma…

jarファイルの組み込み `-cp` オプション

自分のコードに jar ファイルを組み込む場合は、 jarファイル内からクラスファイルを探す必要があるため、クラスパスを指定する必要がある 1. コンパイル foo.jarファイルのクラスを検索する $ javac -cp foo.jar App.java → App.java ファイル内で、foo.ja…

mavenでjettyの起動

jetty:run で起動しても以下のWARNINGが表示されて、プラグインのインストールに失敗することでハマってしまったのでメモに残す。 $ mvn jetty:run [WARNING] The POM for org.eclipse.jetty:jetty-maven-plugin:jar:9.4.15-SNAPSHOT is missing, no depende…