昨日友人がやり方が分からないと嘆いていたので、ちょっと作ってみた。開発環境はnetbeans6.5.1です。
02 | import java.io.FilenameFilter; |
08 | public static void main(String[] args) { |
09 | File dir = new File( "C:\\" ); |
12 | String []files = dir.list( new MyFilter()); |
15 | for ( int i= 0 ; i<files.length; ++i){ |
16 | System.out.println(files[i]); |
24 | class MyFilter implements FilenameFilter{ |
25 | public boolean accept(File dir, String name) { |
26 | int index = name.lastIndexOf( "." ); |
29 | String ext = name.substring(index+ 1 ).toLowerCase(); |
32 | if (ext.equals( "txt" ) == true ) { return true ;} |
FilenameFilterクラスは、インターフェースとして定義されておりまして、実際に使うときは自分でフィルタリングの真偽を判定するacceptメソッドを実装しなければなりません。まさに、インターフェースのお手本のようなクラスですねー。
今作ってるレイトレーサのシェーダクラスもこの作り方で切替えとかできそうです。OOPLに限らず、いろんな言語を使うことで設計について学べることがあって楽しい。関数型言語をもっと触らねばと思う今日この頃。
0 件のコメント:
コメントを投稿