Java 如何使用版本方法';值(字符串)和#x27;

Java 如何使用版本方法';值(字符串)和#x27;,java,search,lucene,Java,Search,Lucene,想知道是否有人能告诉我如何在版本中使用ApacheLucene方法“valueOf(String)”?这是否用于返回应从枚举中使用的当前版本 ) 例如,是否: Version.valueOf("StandardAnalyzer"); 返回应与StandardAnalyzer一起使用的emum版本 谢谢 这个valueOf方法是为每个方法定义的,它只需将类似“LUCENE_24”的字符串转换为相应的枚举常量LUCENE_24我认为您需要这样做:探测它 for(Version v : Versio

想知道是否有人能告诉我如何在版本中使用ApacheLucene方法“valueOf(String)”?这是否用于返回应从枚举中使用的当前版本

)

例如,是否:

Version.valueOf("StandardAnalyzer");
返回应与StandardAnalyzer一起使用的emum版本


谢谢

这个
valueOf
方法是为每个方法定义的,它只需将类似
“LUCENE_24”
的字符串转换为相应的枚举常量
LUCENE_24

我认为您需要这样做:探测它

for(Version v : Version.valueOf("StandardAnalyzer")) System.out.println(v);

我认为enum可以让您安全地选择要使用的版本。我想如果你是从零开始的话,你应该选择最新的版本,否则你应该自愿选择从一个版本升级到另一个版本。 他们不推荐使用LUCENE_CURRENT常量,这样在选择库的新版本时,您就不会得到无声的“更新”

所以基本上我会通过Version.LUCENE_31作为新项目的配置。enum还可以用于使用onOrAfter方法比较两个版本

仍然要回答您的问题,我认为(但现在无法测试)如果出于某种原因您想要使用valueOf方法,您必须传递一个带有版本名的字符串。例如Version.valueOf(“LUCENE_23”)。当然,如果您的版本名来自配置文件,这将非常有用


希望这有帮助

谢谢你的回答。我使用的是Lucene的3.1.0版,我发布的原因是,每当我使用StandardAnalyzer的version.Lucene_31时,我都会得到一个异常:org.springframework.web.util.NestedServletException:处理程序处理失败;嵌套的异常是java.lang.NoClassDefFoundError:org/apache/lucene/util/VersionOh。这是另一个问题。它是唯一一个给你这个错误的lucene类吗?