知识大全 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

相关参考