- PR -

メソッドは、変数としてメソッド間で受け渡しできないのでしょうか?

投稿者投稿内容
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-10-13 13:09
引用:

囚人さんの書き込み (2006-10-13 13:03) より:
#Java 長い事触ってないから、あってるかな…。



コード:
interface Test{
	void test();
}


ですかね。
GoFデザインパターンのStrategyパターンになりますかね。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-10-13 13:12
Methodを引数にすることは可能ですが、正直言って面倒くさいだけで利点がない気がします。
プリミティブも扱いづらいし。
素直にインターフェースを使ってインスタンスごと渡すのがいいのでは…。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-10-13 13:14
引用:

nagiseさんの書き込み (2006-10-13 13:09) より:
引用:

囚人さんの書き込み (2006-10-13 13:03) より:
#Java 長い事触ってないから、あってるかな…。



コード:
interface Test{
	void test();
}


ですかね。
GoFデザインパターンのStrategyパターンになりますかね。


オーマイガっ!
フォローありがとうございます。
_________________
囚人のジレンマな日々
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-10-13 13:19
リフレクションを使うと、例外処理が非常に面倒なので、
インターフェイス型のインスタンスを渡すのをお勧めします。

例外の他にもセキュリティマネージャによって
リフレクションを禁止することもできます。

#JDK7からクロージャの他に、
#メソッド参照も出来るようになると聞きましたが、
#実現されるのでしょうか。
しんい
ベテラン
会議室デビュー日: 2005/09/01
投稿数: 55
投稿日時: 2006-10-13 13:42
TAKEZOさん、ukさん、囚人さん、るぱんさん、りるさん、nagiseさん、mioさん、かつのりさん、ご丁寧にありがとうございました。

インターフェースを渡すのですか、、、インターフェース自体を最近覚えたので、想像もつきませんでした。
ところで、甘えてばかりで大変恐縮なのですが、サンプルコードとか、参考になるサイトってございませんでしょうか。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-10-13 14:18
ソート(Collections.sort(Comparable)を使っている)のサンプルでも探しましょう。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-10-13 14:50
引用:

しんいさんの書き込み (2006-10-13 13:42) より:
ところで、甘えてばかりで大変恐縮なのですが、サンプルコードとか、参考になるサイトってございませんでしょうか。



GoFデザインパターンのStrategyパターンを学びましょう。
検索にかければたくさんのサイトがヒットしますよ。
サンプルコードを提供しているサイトも多くあります。
小僧
ぬし
会議室デビュー日: 2002/08/14
投稿数: 526
投稿日時: 2006-10-13 16:33
引用:

インターフェースを渡すのですか、、、インターフェース自体を最近覚えたので、想像もつきませんでした。


スーパークラスを指定しても、インターフェースと同様のことをすることはできますよ。

※囚人さんのコードを基にしてます
コード:

abstract class AbstractTest{
abstract test();
}

public class Exe implements extends AbstractTest{
public static void main(String[] args) {
Exe exe = new Exe();
exe.execute(exe);
}
private void execute(AbstractTest met){
met.test();
}
public void test(){
System.out.println("success!!");
}
}




ポリモーフィズムってやつです。例ではabstractクラスですが、そうでなくても
できます。インターフェースで実装したほうが自由度が高いので、個人的には
あまり多用しなくなりましたが。
ご参考まで。



[ メッセージ編集済み 編集者: 小僧 編集日時 2006-10-13 16:34 ]

スキルアップ/キャリアアップ(JOB@IT)