Java

URI

URIは、URIを扱うクラス。URI (Java Platform SE 6)URIは、URLの上位概念だけど、基本的に同じ使い方。で、 こんな感じでホスト名だけ取れるこんな感じでホスト名だけ取れる。Sample/java/URI/URI/src/URI at master · bg1bgst333/Sample · GitHub

列挙型

Javaの列挙型enumについてやってなかったので。Java列挙型メモ(Hishidama's Java enum Memo) 列挙型を選ぶ列挙型を選ぶ。 CustomEnumとするCustomEnumとする。 CustomEnum.javaは、FIRSTからTHIRDまで。 MainClass.javaで、customEnumにCustomEnum.SECONDを…

RetentionPolicy.SOURCE

RetentionPolicy.SOURCEにすると、アノテーション情報はソースのみとなり、実行時には取得できなくなる。RetentionPolicy (Java Platform SE 6)CustomAnnotation.javaで、RetentionPolicy.SOURCEを指定。 java.lang.ArrayIndexOutOfBoundsException: 0また、…

@Retention

@Retentionで。アノテーションの生存期間を決められる。Javaアノテーションメモ(Hishidama's Java annotation Memo)独自のアノテーションは、そのままだとコンパイル時に破棄されるので、実行時にも生存しているように@Retentionの引数にRetentionPolicy.RUN…

@interface

独自にアノテーションを定義できる。Javaアノテーションメモ(Hishidama's Java annotation Memo) 新規で注釈新規で注釈。 こんな感じこんな感じ。 これが独自のアノテーションCustomAnnotationこれが独自のアノテーションCustomAnnotation。 あとは、CustomC…

Method.getDeclaredAnnotations

Method.getDeclaredAnnotationsで、そのメソッドに付けられたアノテーションを取得する。Method (Java Platform SE 8)アノテーションは複数付けられるので、本来なら複数取り出したいところだが、今回は1つ。 CustomClass.javaで、method1に、@Deprecatedを…

Method

Class.getMethodの戻り値Methodクラスは、メソッド情報を持っている。Method (Java Platform SE 8)例えば引数がいくつあるかを確認してみる。 CustomClass.javaでは、method1に引数は無いので0。 MainClass.javaで、method1.getParameterCountで引数の数を取…

Class.getMethod

指定された名前の公開型のメソッドを取得するには、Class.getMethodを使う。Class (Java Platform SE 8)CustomClass.javaで、method1を定義。 MainClass.javaで、method1を取得。 public void com.bgstation0.java.sample.CustomClass.method1()こうなった。…

Class.getField

指定された名前の公開型のフィールドを取得するには、Class.getFieldを使う。Class (Java Platform SE 8)CustomClass.javaで、val1を定義。 MainClass.javaで、存在しない場合もあるので、tryで囲む。 public int com.bgstation0.java.sample.CustomClass.va…

Class.getName

パッケージ文字列を含むクラス名を取得するには、Class.getNameを使う。Class (Java Platform SE 8)MainClass.javaは、StringとCustomClassのクラス名を取得する。 java.lang.String com.bgstation0.java.sample.CustomClassこうなる。Sample/java/java.lang…

Class.getPackage

パッケージ文字列(パッケージ名でクラス名は入らない。)を取得するには、Class.getPackageを使う。 (正確にはPackageオブジェクトを返すので文字列ではない。)Class (Java Platform SE 8) 独自クラスにパッケージ名を付ける独自クラスにパッケージ名を付ける…

Object.getClass

Classインスタンスは、Object.getClassでも取得できる。Object (Java Platform SE 8) Javaリフレクションメモ(Hishidama's Java Reflection Memo)非ジェネリクス版とジェネリクス版。 class java.lang.String class java.lang.String取得出来た。Sample/java…

Class

そのクラスのクラス情報は、Classクラスを取得することでわかる。Javaリフレクションメモ(Hishidama's Java Reflection Memo) Class (Java Platform SE 8)クラス名.classでClassインスタンスを取得できる。IntegerとStringのクラス情報を取得。 Stringの場合…

ワイルドカード

例えばListなどが返ってくるときに、Listの要素の型が関数内部の処理によって変わったりする場合がある。 型引数に'?'を指定すると、要素型が違っても受け取れる。 ワイルドカードという。Java総称型メモ(Hishidama's Java Generics Memo)MainClass.javaで、…

総称型

総称型、いわゆるジェネリクス。 Javaでやってなかったので。Java総称型メモ(Hishidama's Java Generics Memo)CustomClass.javaで、Tにどんな型でも入っていいように中の処理を書く。 MainClass.javaで、組み込み型ではなく、クラス名を指定する。 Integerの…

Thread.getName

Thread.getNameで、スレッド名を取得する。Thread (Java Platform SE 6)スレッドIDの取得からスレッド名の取得に差し替え。こちらも。 CustomThread before. [1]:Thread.currentThread.getName() = main [2]:Thread.currentThread.getName() = main [3]:Thre…

Thread.currentThread

Thread.currentThreadで、現在のスレッドの参照を取得できる。Thread (Java Platform SE 6)スレッドの内側と、スレッドの外側で、スレッドIDが違うことを確認する。run内に2箇所。生成前、生成後、実行後の3箇所。 CustomThread before. [1]:Thread.currentT…

Thread.getId

Thread.getIdで、スレッドIDを取得できる。Thread (Java Platform SE 6)CustomThreadの生成、実行、CustomThreadのrun内で、スレッドIDを取得してみる。CustomThreadの中はこれだけ。MainClassは、ctの生成と、ct.startの実行時。 CustomThread before. [1]:…

Runnable

Runnableを匿名クラスで実装する場合もある。Runnable (Java Platform SE 6)こんな感じでrunの中にThread.sleep。 CustomThread before. CustomThread after. Thread.sleep before.の3秒後に、 Thread.sleep after.が出る。Sample/java/Runnable/Runnable/sr…

Thread

Threadを新しく生成して実行する方法はいくつかあるが、今回はThreadを継承した派生クラスを作る。Thread (Java Platform SE 6)runで3秒休止。こうすると、 CustomThread before. CustomThread after. Thread.sleep before最初こうだが、3秒経つと、 Thread.…

Thread.sleep

Thread.sleepで、スレッドを休止させる。Thread (Java Platform SE 6)カレントスレッドを休止させることで、ただただ処理を3秒止める。tryで囲まなきゃいけない。 Thread.sleep beforeと出て3秒経つと、 Thread.sleep afterと出る。Sample/java/Thread/sleep…

Stream.forEach

Stream.forEachを使って、各要素に対してactionを実行できる。Stream (Java Platform SE 8)各要素の名前の出力をforEachで繰り返している。 Taro Saburo Goroこうなる。Sample/java/Stream/forEach/src/Stream at master · bg1bgst333/Sample · GitHub

Stream.toArray(generator)

toArrayの引数に、配列生成のgenerator関数の参照やラムダ式を渡すことで、指定の型の配列で受け取れる。Stream (Java Platform SE 8)xに要素数が入るので、ラムダ式の矢印の先は要素数xの配列を生成する部分になる。 これだと、Stringの配列で受け取れる。 …

Stream.toArray

配列に変換するには、toArrayを使う。Stream (Java Platform SE 8)ただし、引数なしのバージョンでは、Objectの配列にしか直接変換できない。なので拡張for文の中でStringに変換してる。 実行すると、 Taro Saburo Goroこうなる。Sample/java/Stream/toArray…

Stream.map

Streamで絞り込まれた要素のどの値を返すかは、mapで指定する。Stream (Java Platform SE 8)こちらでも、170以上のボディの年齢を返す。とすると、 30 25 17となる。Sample/java/Stream/map/src/Stream at master · bg1bgst333/Sample · GitHub

Stream.filter

Streamで条件を絞り込むには、filterを使う。Stream (Java Platform SE 8)bodies.stream.filterで170以上を指定。 こちらはforの中でBodyにキャストして、各値を出力。 Taro, 30, 170, 60 Saburo, 25, 180, 70 Goro, 17, 175, 65このように出力できた。Sampl…

Stream

Stream APIにおける集約操作の対象となるのがStreamインターフェース。Stream (Java Platform SE 8)いったんStreamインターフェースに入れてみた。 条件は173を超えるに変更。 Saburo Goroこのようになった。Sample/java/Stream/Stream/src/Stream at master…

Collection.stream

Streamを取得する方法はいくつかあるが、手っ取り早いのはCollection.streamで取得すること。Collection (Java Platform SE 8)今回は、Listを継承元のCollectionに替える。当然Collectionからもstreamメソッドが呼べる。 条件も170未満に替えてみる。 Jiro S…

Stream API

Java 8からStream APIが導入された。 C#のLINQと同様に、データの流れを集約したり操作したりできる。Java Streamメモ(Hishidama's Java8 Stream Memo)LINQの項で扱った身長と体重に関する操作を、Java Stream APIでもやってみる。Body.csは、このようなBody…

Collection

ArrayListやLinkedListが継承するList、HashSetやTreeSetが継承するSetなど、コレクションはCollectionインターフェースを継承している。Collection (Java Platform SE 6)なので、Collectionにインスタンスを入れることが出来る。 aaa 1.2 10 abc 100 1.5 BB…