import typeUse.*;
import java.util.*;
abstract class Parent {
abstract @NotNull String @NotNull [] getStrings();
abstract @NotNull List<@NotNull String> getStringList();
abstract void foo(@Nullable String @NotNull [] p1,
@NotNull List<@Nullable String> p2);
}
class Child extends Parent {
@Override
@Nullable String @NotNull [] getStrings() {
throw new UnsupportedOperationException();
}
@Override
@NotNull List<@Nullable String> getStringList() {
throw new UnsupportedOperationException();
}
void foo(@NotNull String @NotNull [] p1,
@NotNull List<@NotNull String> p2) {
}
}