4

以下は合法であり(つまり、コンパイルできます)、プレビュー機能が有効になっているJava 15で動作します(Eclipse 2020-09で)

public sealed interface Quantity<T> permits QuantityImpl { }
public record QuantityImpl<T extends Number>(T value) implements Quantity<T> { }

public class Play {
    public static void main(String[] args) {
        Quantity<Float> q = new QuantityImpl<>(3.0f);
        System.out.println(q instanceof Quantity);
    }
}

ただし、日食はQuantity.javaat で不平を言ってい... permits QuantityImplます。カーソルを合わせると、次のように表示されQuantityImplます。

Permitted type QuantityImpl does not declare Quantity<T> as direct super interface

これは、コンパイルされたとしても、有効な苦情ですか、それとも日食のバグですか?

4

0 に答える 0