1

私はサービスの周りに多くのプロキシ クラスを持っていますが、すべて (ほぼ) 同じように見えます。およびクラスを型パラメーターとして取るジェネリック シングルトン クラスを使用して、コードの重複を何とか減らすことはできますか?ServicePort

これは、私が始めたいと思っている私の完全に間違ったコードです:

public class MyProxy<S extends Service, P extends BindingProvider>
{
  private static final MyProxy<S extends Service, P extends BindingProvider> instance
      = new Proxy<S extends Service, P extends BindingProvider>();
  private S service;

  public static MyProxy<S extends Service, P extends BindingProvider> getInstance() {
    return instance;
  }

}
  • Iの型パラメーターMyProxy正しいと思います。
  • 静的instanceシングルトンメンバー変数を宣言できますか?また、その方法は?
  • メンバー変数serviceはもっと簡単なはずですが、型パラメーターをメンバーとして持つことはできますか?
  • の戻り値の型はどうですかgetInstance()、どう書けばいいですか?
4

2 に答える 2

0

これは私の最初のコメントに対応するコードです。私が言ったように、これにはチェックされていないキャストが含まれます。

public static class MyProxy<S extends Service, P extends BindingProvider> {

    private static final MyProxy<? extends Service, ? extends BindingProvider> instance = new Proxy<Service, BindingProvider>();

    private S service;

    public static <S extends Service, P extends BindingProvider> MyProxy<S, P> getInstance() {
        return (MyProxy<S, P>) instance;
    }
}
于 2013-09-12T09:29:13.260 に答える