this.unit = unit; ensureNonNull("valueClass", valueClass); AbstractParameter.ensureValidClass(valueClass, defaultValue); AbstractParameter.ensureValidClass(valueClass, minimum); AbstractParameter.ensureValidClass(valueClass, maximum); if (minimum != null && maximum != null) { if (minimum.compareTo(valueClass.cast(maximum)) > 0) { for (int i = 0; i < validValues.length; i++) { final T value = validValues[i]; AbstractParameter.ensureValidClass(valueClass, value); valids.add(value);