首页 > 解决方案 > 在java中返回一个泛型而不强制转换它?

问题描述

我有一个这样的界面

public interface ClientBuilder <Client> {

    Client build();

}

它被用在这样的功能中

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

有没有一种方法可以让我不必键入强制转换,这样我就可以删除(x)? 这不是完全必要的,只是很高兴拥有

标签: javagenericsinterface

解决方案


是的。您ClientBuilder在函数中进行泛型。而且,您应该遵循 Java 命名约定。serviceImpl看起来像一个方法名(x看起来像一个变量而不是类名)。但是使用你的名字,比如

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

推荐阅读