1

ユーザーの財布からお金を差し引く汎用モジュールを含む Java アプリケーションを作成しています。

したがって、クラスは次のようになります。

public class BuyGiftForMyselfCallable implements Callable<Boolean> {

private String username;
private long coins;

public BuyGiftForMyselfCallable(final String username,final long coins) {
    this.username=username;
    this.coins=coins;
}

@Override
public Boolean call() throws Exception {

    ...
    }

BuyGiftForMyselfCallable を知らない関数にこのクラスを渡したい。それはCallableについてだけ知っています!

だから私は次のものを持っています:

function receiver(Callable<*> func) {
...
} 

この関数で、クラスの新しいインスタンスを作成し、クラスの発生元を知らずにパラメーターをコンストラクターに渡す方法は?

4

2 に答える 2

0

ここで、 Callable は の型を探しているのではBuyGiftForMyselfCallableなく、その return:を探していますBoolean

だからCallable<Boolean>IEを使う:

public void receive(Callable<Boolean> func){
  ...
}

また、この関数内で Callable クラスのインスタンスを作成するのではなく、他の場所 (コンストラクターとすべて) で作成してから、この関数に渡します。

于 2013-02-24T15:54:03.020 に答える
0

ここでリフレクションのを使用instanceofするか、実装クラスが何であるかを調べて、それを使って好きなことをするために使用できます。しかし、@vikingsteveがコメントで述べたように、それを行う必要性をまったく避けるために使用する必要があるのはおそらく別のアプローチです

于 2013-02-24T16:08:49.630 に答える