在Java8中推断Optional的泛型

时间:2018-04-18 07:17:54

标签: java java-8

我试图实现一个方法,该方法返回一个类的可选:A,B,C扩展母亲。

我不知道从哪里开始。我试过这样的事情

    private Optional<U> get(String query,U u){
    }

A = c.get("Looking for an A",A.class)
B = c.get("Looking for an B",B.class)
C = c.get("Looking for an C",C.class)
C = c.get("Looking for an k",k.class) // Exception, K doesn't extend `Mother`

1 个答案:

答案 0 :(得分:6)

几乎就在那里,这是一个更好的版本。

private <U extends Mother> Optional<U> get(String query, Class<U> clazz) {
    ...
}

有界类型参数确保只能传递Mother(或Mother.class本身)的子类。