当前位置: 首页 > news >正文

上海企业网站制作方法自己做的网站怎么管理用户

上海企业网站制作方法,自己做的网站怎么管理用户,网站优化基础,一键搭建网站在说Filed之前,我们先来了解一下Member接口. 反射中定义了一个接口 java.lang.reflect.Member . java.lang.reflect.Field, java.lang.reflect.Method, 和java.lang.reflect.Constructor 都实现了该接口.我们将在接下来的部分介绍这些类.对于每个Member, 我们都会介绍相关的API…在说Filed之前,我们先来了解一下Member接口. 反射中定义了一个接口 java.lang.reflect.Member . java.lang.reflect.Field, java.lang.reflect.Method, 和java.lang.reflect.Constructor 都实现了该接口.我们将在接下来的部分介绍这些类.对于每个Member, 我们都会介绍相关的API去获取和操作该Member.每个概念我们都会使用示例代码和示例输出说明. 1.获得字段(Field)的类型 一个filed可以是一个基本数据类型或者一个引用类型.java中有八种基本的数据类型: boolean, byte, short, int, long, char, float,  double.引用类型可以使任何的直接或者间接的继承java.lang.Object 的接口,数组,或者枚举等. FiledSpy示例类实现了将一个给定的类的二进制文件中包含的field类型和泛型打印出来. import java.lang.reflect.Field; import java.util.List;public class FieldSpyT {public boolean[][] b {{ false, false }, { true, true } };public String name Alice;public ListInteger list;public T val;public static void main(String... args) {try {Class? c Class.forName(args[0]);Field f c.getField(args[1]);System.out.format(Type: %s%n, f.getType());System.out.format(GenericType: %s%n, f.getGenericType());// production code should handle these exceptions more gracefully} catch (ClassNotFoundException x) {x.printStackTrace();} catch (NoSuchFieldException x) {x.printStackTrace();}} }实例输出: $ java FieldSpy FieldSpy b Type: class [[Z GenericType: class [[Z $ java FieldSpy FieldSpy name Type: class java.lang.String GenericType: class java.lang.String $ java FieldSpy FieldSpy list Type: interface java.util.List GenericType: java.util.Listjava.lang.Integer $ java FieldSpy FieldSpy val Type: class java.lang.Object GenericType: T字段b的类型是一个二维的布尔型数组. 字段val的类型被认定为java.lang.Object.因为泛型的实现方式是在编译的过程中将和泛型有关的信息用相关的类替换.因此此处为java.lang.Object. 2.获取和解析字段修饰符(Filed Modifier) java中有以下几种字段修饰符: 访问控制修饰符: public, protected, and private运行时领域管理修饰符: transient and volatile控制一个实例修饰符: static禁止值修改修饰符: final注解 方法Field.getModifiers()可以用来获得一个以整型表示的字段修饰符.这些整形被定义在java.lang.reflect.Modifier中. 示例类FieldModifierSpy说明了如何搜索一个类中指定的修饰符所修饰的字段. import java.lang.reflect.Field; import java.lang.reflect.Modifier; import static java.lang.System.out;enum Spy { BLACK , WHITE }public class FieldModifierSpy {volatile int share;int instance;class Inner {}public static void main(String... args) {try {Class? c Class.forName(args[0]);int searchMods 0x0;for (int i 1; i args.length; i) {searchMods | modifierFromString(args[i]);}Field[] flds c.getDeclaredFields();out.format(Fields in Class %s containing modifiers: %s%n,c.getName(),Modifier.toString(searchMods));boolean found false;for (Field f : flds) {int foundMods f.getModifiers();// Require all of the requested modifiers to be presentif ((foundMods searchMods) searchMods) {out.format(%-8s [ synthetic%-5b enum_constant%-5b ]%n,f.getName(), f.isSynthetic(),f.isEnumConstant());found true;}}if (!found) {out.format(No matching fields%n);}// production code should handle this exception more gracefully} catch (ClassNotFoundException x) {x.printStackTrace();}}private static int modifierFromString(String s) {int m 0x0;if (public.equals(s)) m | Modifier.PUBLIC;else if (protected.equals(s)) m | Modifier.PROTECTED;else if (private.equals(s)) m | Modifier.PRIVATE;else if (static.equals(s)) m | Modifier.STATIC;else if (final.equals(s)) m | Modifier.FINAL;else if (transient.equals(s)) m | Modifier.TRANSIENT;else if (volatile.equals(s)) m | Modifier.VOLATILE;return m;} }示例输出: $ java FieldModifierSpy FieldModifierSpy volatile Fields in Class FieldModifierSpy containing modifiers: volatile share [ syntheticfalse enum_constantfalse ]$ java FieldModifierSpy Spy public Fields in Class Spy containing modifiers: public BLACK [ syntheticfalse enum_constanttrue ] WHITE [ syntheticfalse enum_constanttrue ]$ java FieldModifierSpy FieldModifierSpy\$Inner final Fields in Class FieldModifierSpy$Inner containing modifiers: final this$0 [ synthetictrue enum_constantfalse ]$ java FieldModifierSpy Spy private static final Fields in Class Spy containing modifiers: private static final $VALUES [ synthetictrue enum_constantfalse ]注意到一些字段被显示出来,虽然他们并没有被定义在该类的源代码中.原因是编译器会自动生成一些字段(synthetic fields  :这些字段指的是不是有用户显示声明的,而是在编译的时候,由编译器合成的).如果你想要知道一个字段是否是合成的(synthetic), 也已使用Field.isSynthetic()方法.合成字段的集合是依赖于编译器的.然而普遍的使用this$0在内部类中表示最外层的封装类.枚举中使用$VALUES类定义隐式的静态方法values().合成类的名称不一定总是一样的,不同的编译器可能有不同的名字.并且并不是所有的合成字段都会被声明为public. 因为Field实现了java.lang.reflect.AnnotatedElement接口,因此我们也可以使用java.lang.annotation.RetentionPolicy.RUNTIME获取运行时注解.具体示例见Examining Class Modifiers and Types.. 3.获取和设置字段值. 给我们一个Class实例,我们可以使用反射去修改字段的值.这经常被使用在不能通过通常的方式修改该字段的值的环境下.因为这样的操作通常违反类的设计意图,这应该被谨慎的使用. Book示例类说明了如何设置long, array, enum类型的字段值.其他类型的对应方法,参考java API. import java.lang.reflect.Field; import java.util.Arrays; import static java.lang.System.out;enum Tweedle { DEE, DUM }public class Book {public long chapters 0;public String[] characters { Alice, White Rabbit };public Tweedle twin Tweedle.DEE;public static void main(String... args) {Book book new Book();String fmt %6S: %-12s %s%n;try {Class? c book.getClass();Field chap c.getDeclaredField(chapters);out.format(fmt, before, chapters, book.chapters);chap.setLong(book, 12);out.format(fmt, after, chapters, chap.getLong(book));Field chars c.getDeclaredField(characters);out.format(fmt, before, characters,Arrays.asList(book.characters));String[] newChars { Queen, King };chars.set(book, newChars);out.format(fmt, after, characters,Arrays.asList(book.characters));Field t c.getDeclaredField(twin);out.format(fmt, before, twin, book.twin);t.set(book, Tweedle.DUM);out.format(fmt, after, twin, t.get(book));// production code should handle these exceptions more gracefully} catch (NoSuchFieldException x) {x.printStackTrace();} catch (IllegalAccessException x) {x.printStackTrace();}} }示例输出: $ java Book BEFORE: chapters 0AFTER: chapters 12 BEFORE: characters [Alice, White Rabbit]AFTER: characters [Queen, King] BEFORE: twin DEEAFTER: twin DUM注意: 通过反射设置字段的值往往需要很多的操作.因为很多额外的操作必须被执行,例如检测数据的可访问性.但是从运行时的角度来看,结果是一样的.因为所有的操作被看做一个院子操作来执行,等同于直接修改该变量的值.e:使用反射会导致一些运行时优化失效.例如,下面的代码很容易被java虚拟机优化:int x 1; x 2; x 3;但是如果使用反射,则要使用Field.set*(),这是优化失效.
http://www.yutouwan.com/news/62915/

相关文章:

  • 门户网站什么意思国外销售网站
  • 网站建设 ader关于茶文化网站建设的背景
  • 贺州做网站南阳专业网站制作费用
  • 网站小图标素材下载杭州网站备案
  • 济宁网站建设济宁天津网站推广外包
  • 网站怎么做反链wap网站是什么意思啊
  • 男女情感类网站数学老师做直播的网站
  • 容桂网站建设原创ps做网站横幅
  • 弄美团网站的一般一个做赚多少钱手机网站开发介绍
  • 做网站打广告图片素材开发公司多收公共维修基金情况说明
  • 深圳有哪些做网站公司天宁建设网站
  • 做网站市场价格中铁建发展集团有限公司
  • 网站配置怎么html5做宠物饲养网站
  • 官方网站建设合作协议一直免费的服务器下载
  • 网站建设如何在宣传部备案图像生成器在线制作
  • 网站flash素材域名解析暂时失败
  • 菏泽网站建设报价陕西网站维护
  • 网站开发 百度编辑器wordpress+爱情主题公园
  • 园林设计公司网站国外 平面设计网站
  • wordpress 建站免费百度官方营销推广平台有哪些
  • 赣州市住房和城乡建设局网站seo推广团队
  • 新网 网站建设crm销售
  • 怎样做订房网站外贸单子怎么找
  • 有没有好的网站义乌前十跨境电商公司
  • 江苏恒健建设集团有限公司网站如何添加wordpress主题
  • 长沙网页制作网站自媒体网络营销是什么
  • 专业网站设计制作服务下列 是计算机网页制作工具
  • 锤子网站cms版本天猫网页版
  • 网站用html模拟图片无极县招聘信息最新招聘
  • 广宁县住房建设局网站学校的网站的代码模板下载