知识大全 Java反射机制获取内部类的静态成员
Posted 时调
篇首语:越工作越能工作,越忙碌越能发明出闲暇。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java反射机制获取内部类的静态成员相关的知识,希望对你有一定的参考价值。
Java反射机制获取内部类的静态成员 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
最近需要些一个可配置的索引构建程序 需要在运行时调用Lucene包的如下类及其成员
引用
Nested Class Summary
static class Field Index
Specifies whether and how a field should be indexed
static class Field Store
Specifies whether and how a field should be stored
static class Field TermVector
Specifies whether and how a field should have term vectors
lucene api中称之为Nested Class 意为嵌套类 而嵌套类内部的File Index的成员又是静态成员
引用
Field Summary
static Field Index ANALYZED
Index the tokens produced by running the field s value through an Analyzer
static Field Index ANALYZED_NO_NORMS
Expert: Index the tokens produced by running the field s value through an Analyzer and also separately disable the storing of norms
static Field Index NO
Do not index the field value
static Field Index NO_NORMS
Deprecated This has been renamed to NOT_ANALYZED_NO_NORMS
static Field Index NOT_ANALYZED
Index the field s value without using an Analyzer so it can be searched
static Field Index NOT_ANALYZED_NO_NORMS
Expert: Index the field s value without an Analyzer and also disable the storing of norms
static Field Index TOKENIZED
Deprecated this has been renamed to ANALYZED
static Field Index UN_TOKENIZED
Deprecated This has been renamed to NOT_ANALYZED
一个棘手的问题 如果获得这些内部静态成员?
最后采用了如下方法
//运行时调用Filed Index类型
Java代码
Class<?> cls = apache lucene document Field Index class;
java lang reflect Field indexDeclareField = cls getDeclaredField(field getIndex());
Object indexDeclareFieldType = indexDeclareField get(cls);
apache lucene document Field Index filedIndex = ( apache lucene document Field Index)indexDeclareFieldType;
//运行时调用Field Store类型
Class<?> clsStore = apache lucene document Field Index class;
java lang reflect Field storeDeclareField = cls getDeclaredField(field getIndex());
Object indexStoreDeclareField = indexDeclareField get(cls);
cha138/Article/program/Java/hx/201311/26078相关参考