我想在Java8中實現泛型函數,它驗證集合沒有空成員並返回帶有@NonNull註解的類型。具有@NonNull與集合的返回類型的Java泛型
輸入類型:T擴展Collection,其中T + U可爲空。
結果類型:@NonNull T,與@NonNullü
對於數組這應該是這樣的:
public static <T> @NonNull T @NonNull[] arrayHasNoNullMember(@Nullable T @Nullable[] value) {
但對於收集的情況下,我不知道如何定義結果類型與輸入類型相同,但具有集合的@NonNull註釋和元素類型。
這就是我想做的事情,但它不是有效的語法:
public static <T extends Collection<U>, U> @NonNull T<@NonNull U> collectionHasNoNullMember(T<U> col) {
你能幫忙嗎?
因此,根本沒有機會獲得@NonNull? – fbenoit
如果爲TYPE_USE配置了該註釋,則可以在返回類型之前和參數類型之前將其滑入。值得一試。 –
這裏的要點是,該參數對於集合不具有@ NonNull,對於其元素類型沒有。在回報中都有它。是的,@ NonNull是爲TYPE_USE設置的。 – fbenoit