簡體   English   中英

Java 密封接口允許泛型類型:gradle 抱怨,eclipse 沒有

[英]Java sealed interface permits generic type: gradle complains, eclipse does not

我有三種類型, ABC ,定義如下:

public sealed interface A extends Comparable<A> permits B<?>, C { ...
    
public non-sealed interface B<T> extends A { ...
    
public record C(String s, int i) implements A { ...

一切都在 Eclipse 中編譯並正常工作。 現在,當我運行 gradle 構建時,我收到一個錯誤error: '{' expected at the place of opening bracket at permits B<?> 當我刪除<?>時,類型定義如下(原始類型):

public sealed interface A extends Comparable<A> permits B, C { ...

...然后 gradle 不會抱怨並且構建成功。 這是 gradle 錯誤還是我使用的類型定義不允許?

根據Java 語言規范§8.1.6permits類型列表的項目必須沒有其類型參數。

因此, permits B<?>不正確,必須更正為permits B

請確保permits B<?>不會給出編譯錯誤,並且permits B<?>確實給出B is a raw type. References to generic type B<T> should be parameterized B is a raw type. References to generic type B<T> should be parameterized警告,已報告給 Eclipse JDT

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM