Description
Tang does not allow empty string, "", as a default value. Precisely speaking, we can declare it like the following, but it raises InjectionException if we use that as an `OptionalParameter`.
Sample.java
@NamedParameter(default_value = "") class EmptyStringAsDefaultParam implements Name<String> { }
It is because `NamedParameter` interface uses "" as a default value and `JavaNodeFactory` calls `isEmpty` to check the existence of default values.
NamedParameter.java
String default_value() default "";
JavaNodeFactory.java
if (!namedParameter.default_value().isEmpty()) {
...
}
Instead of Empty String, Tang had better use some kind of MAGIC String to distinguish whether the existence of default values.
Attachments
Issue Links
- links to