2
我們有一類我們需要傳遞到標註的參數,但要經過如何在Java註釋中初始化一個類?
public final class StandardAnalyzer extends StopwordAnalyzerBase {
public static final int DEFAULT_MAX_TOKEN_LENGTH = 255;
private int maxTokenLength;
private final boolean replaceInvalidAcronym;
public static final Set<?> STOP_WORDS_SET;
public StandardAnalyzer(Version matchVersion, Set<?> stopWords) {
}
繼之前初始化它註釋:
@Fields({ @Field(index = Index.YES, store = Store.NO, analyzer = @Analyzer(impl = StandardAnalyzer.class)
在@Analyzer(IMPL = StandardAnalyzer < - 我想要傳遞參數即標準分析器(版本,停用詞),並且我嘗試過使用新的但未通過。
以下是分析器的註釋詳細信息:
@Retention(value = RetentionPolicy.RUNTIME)
@Target(value = {ElementType.TYPE, ElementType.FIELD, ElementType.METHOD})
@Documented
public @interface Analyzer {
public Class<?> impl() default void.class; <--- Here is where i want to pass
public String definition() default "";
}
在傳入註解之前是否有任何方法來初始化類?
您不初始化* class *。你*實例化*它。也就是說,你創建一個實例(一個對象)並初始化*實例*。所以如果你傳遞的是一個類對象而不是真正的對象,它就不能被初始化。如何傳遞一個對象而不是一個類?你知道編譯時參數是什麼嗎? – RealSkeptic
Yes參數存在,即Version.LUCENE_32,Collections.EMPTY_SET – fatherazrael
您必須使用* Analyzer *註釋來註釋您的類。在此註釋中,您可以定義參數來描述更特殊的分析器類。然後,您可以通過註釋訪問這些參數。 – Guybrush