public static Object parseDefaultsValue( String key, String value, Class<?> valueType )
		throws IllegalArgumentException
	{
		// resolve variables
		value = UIDefaultsLoader.resolveValueFromUIManager( value );

		// parse value
		Object val = UIDefaultsLoader.parseValue( key, value, valueType, null,
			v -> UIDefaultsLoader.resolveValueFromUIManager( v ), Collections.emptyList() );

		// create actual value if lazy or active
		if( val instanceof LazyValue )
			val = ((LazyValue)val).createValue( null );
		else if( val instanceof ActiveValue )
			val = ((ActiveValue)val).createValue( null );

		return val;
	}
Parses a UI defaults value string and converts it into a binary object.
<p>
See: <a href="https://www.formdev.com/flatlaf/properties-files/">https://www.formdev.com/flatlaf/properties-files/</a>

@param key the key, which is used to determine the value type if parameter {@code valueType} is {@code null}
@param value the value string
@param valueType the expected value type, or {@code null}
@return the binary value
@throws IllegalArgumentException on syntax errors
@since 2
flatlaf-core/src/main/java/com/formdev/flatlaf/FlatLaf.java