JavaでC#のFuncデリゲートを再現した時のコードメモ

JavaはまだC#におとりラムダ構文とかはないけど、C#と同じ形でデリゲート処理がしたかったので試しにcountとexistsだけあるCListクラスを作った

もっとメソッドカスタマイズして便利にしたい

	@SuppressWarnings("hiding")
	interface Func<T, R> {
		R do(T t);
	}
	class CList<T> extends ArrayList<T> {
		private List<T> list = new ArrayList<T>();
		public Integer count(final Func<T, Boolean> delegate) {
			int count = 0;
			for(T i : list)
				if (delegate.do(i)) count ++;
			return count;
		}
		public Boolean exists(final Func<T, Boolean> delegate){
			for(T i : list)
				if(delegate.do(i)) return true;
			return false;
		}
		public Boolean add(T t) {
			return list.add(t);
		}
	}

その他おすすめの備忘録

Tagged with:
 

コメントを残す