Builder (@NotNull DataContext dataContext, DataKey<?> @NotNull ... keys) { if (keys.length == 0) { throw new IllegalArgumentException("Keys argument must not be empty"); } for (DataKey<?> key : keys) { //noinspection unchecked add((DataKey<Object>)key, dataContext.getData(key)); } return this; }