それをキャストすることなく、Javaでジェネリックを返しますか?

sf8193:

私はそうのようなインターフェースを持っています

public interface ClientBuilder <Client> {

    Client build();

}

それは、このような関数で使用されています

private static Service createImpl(ClientBuilder clientBuilder) {
        return new serviceImpl((x) clientBuilder.build());
    }

私は削除することができそうという、それをキャスト入力する必要がないだろう方法はありますか(x)それは完全に必要はありません、ただ持っていいだろう

エリオットの新鮮:

はい。あなたは作るClientBuilder機能で汎用的。そして、あなたはJavaの命名規則に従ってください。serviceImplメソッド名のように見える(とx変数ではないクラス名のように見えます)。しかし、のようなものを自分の名前を使用して

private static Service createImpl(ClientBuilder<x> clientBuilder) {
    return new serviceImpl(clientBuilder.build());
}

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=375062&siteId=1