I want to implement a generic function in Java8, that verifies that a collection has no null members and returns a type with @NonNull annotation.
input type: T extends Collection, where T+U are nullable.
result type: @NonNull T, with @NonNull U
For array this would look like this:
public static @NonNull T @NonNull[] arrayHasNoNullMember( @Nullable T @Nullable[] value) {
But for the collection case, i don't know how to define that the result type is the same as the input type, but has the @NonNull annotations for the collection and the element type.
This is what i want to do, but it is not valid syntax:
public static , U> @NonNull T collectionHasNoNullMember(T col) {
Can you help?
解决方案
Unfortunately there's no way in Java to alter a generic type