I would rather turn it around: script parameters are an extension of the Java
@Parameter notation in SciJava to script languages. The
@ annotations are a feature of the Java programming language, and the
org.scijava.plugin.Parameter class makes add a custom annotation to this feature.
And widgets, in turn, are UI elements that – when present – allow to harvest parameter input from the user via the UI. But they’re not required: you can use parameters without widgets, e.g. when they are auto-fillable (such as SciJava
Services), or when you provide the input in another way (such as via command line, or by handing them over in your call to
ScriptService). Widgets are implemented in the UI to simplify parameter input, but parameters in general are UI-independent and work headless.
Oh, no, you don’t need to be complicated. An initializer is useful for dynamic initialization, if the value depends on another value only known at runtime.
If you just want to set a default value, you can assign a value to the annotated variable in your Java code:
@Parameter (label = "Please enter your name")
private String name = "myDefaultName";