Java関連

Java関連Tips

サブトピック

一般

ストリームAPI

Optional型

例外処理

ラムダ式/メソッド参照

static初期化子とインスタンス初期化子

  • http://www.genzou.sakura.ne.jp/class/inisharaiza_shokikasi.html
    // static初期化子の例
    public class MyTest {
    
          static int[] hoge;
          static {
                  hoge = new int[5];
                  for( int i = 0; i < 5; i++ ){
                          hoge[i] = i;
                  }
          }
    
    
          public static void main(String[] args){
    
                  for( int i = 0; i <hoge.length; i++) {
                          System.out.print(MyTest.hoge[i] + ",");
                  }
          }
    }
    
    // インスタンス初期化子の例
    public class MyTest {
    
          static int[] hoge;
          {
                  hoge = new int[5];
                  for( int i = 0; i < 5; i++ ){
                          hoge[i] = i;
                  }
          }
    
          public static void main(String[] args){
    
                  try {
                          MyTest m = new MyTest(); // インスタンス初期化子にはこれが必要
    
                          for( int i = 0; i <hoge.length; i++) {
                                  System.out.print(MyTest.hoge[i] + ",");
                          }
                  } catch( Exception e ) {
                          System.out.print("例外発生:" + e.toString()  );
                          e.printStackTrace();
                  }
          }
    }
  • ArrayListを定義すると同時に初期化するサンプル
    ArrayList<HogeEnum> list = new ArrayList<HogeEnum>() {
          { add(HogeEnum.A); }
          { add(HogeEnum.B); }
          { add(HogeEnum.C); }
    };

可変個引数の例

int sum(Integer... values){
  int sum = 0;
  for(int val : values){
    sum += val;
  }
  return sum;
}
//呼び出し側
int sum = sum(1,2,3,4,5);

ジェネリクス関連

リストを渡してリストを返すようなメソッドでジェネリックを使ってキャストしなくてもいいようにする

public <T> List<T> hoge( List<T> list)

Cで言うmemsetに当たる処理

import java.util.*;
 :
byte[] buf = new byte[200];
Arrays.fill(buf,0x20);

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-09-10 (土) 14:54:33 (27d)