java - Why must Lucene Token Filter classes be declared "final"? -
according solr's blog, lucene requires tokenfilter subclasses must declared final. advantage of final classes in context? makes impossible extend functionality of existing tokenfilter.
tokenfilter extends tokenstream, , javadoc says:
the
tokenstream-api in lucene based on decorator pattern. therefore non-abstract subclasses must final or have @ least final implementation ofincrementtoken()! checked when java assertions enabled.
for example, standardfilter not marked final (only incrementtoken() is).
so if want extend existing tokenfilter it's best via delegation.
Comments
Post a Comment