public static @Nullable <T> List<T> copyList(@Nullable List<T> target, @Nullable List<T> source) {
    if (source == null || source.isEmpty()) return target;
    if (target == null) target = new ArrayList<>(source.size());
    target.addAll(source);
    return target;
  }
public static @Nullable <T> List<T> copyList(@Nullable List<T> target, @Nullable List<T> source)