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

怎么做网站的搜索栏做网站界面设计注意什么

怎么做网站的搜索栏,做网站界面设计注意什么,博兴做网站,深圳营销策划公司JDK 8较不为人所知的一项新 功能是在编译的Java类中包含参数元数据的可选功能[JDK增强建议#xff08; JEP #xff09; 118 ]。 此功能允许Java应用程序在运行时通过反射访问此参数元数据信息。 Java Tutorial的Reflection API路径包括一个名为“ 获取方法参数的名称”的课… JDK 8较不为人所知的一项新 功能是在编译的Java类中包含参数元数据的可选功能[JDK增强建议 JEP 118 ]。 此功能允许Java应用程序在运行时通过反射访问此参数元数据信息。 Java Tutorial的Reflection API路径包括一个名为“ 获取方法参数的名称”的课程该课程讨论并演示了如何在Java 8中应用此新功能。该课程包括一个示例Java类MethodParameterSpy 可以对提供的Java类运行该类以指示特征方法和构造函数参数。 本课还强调这是一项可选功能因为在.class文件中存储其他参数元数据会增加这些文件的大小。 该课程还指出在某些情况下参数名称包含开发人员不希望在已编译的.class文件中使用的敏感信息。 通过将-parameters选项传递给javac编译器可以将其他参数元数据包含在用Java 8编译的.class文件中。 当一个人键入javac -help时也会显示此-parameters选项如下一个屏幕快照所示。 该javac的甲骨文技术说明页面显示此附加方法/构造函数的参数数据在运行时可以访问在生成的类文件“房屋构造函数和方法的形式参数名称这样的方法java.lang.reflect.Executable.getParameters从Reflection API可以检索它们。” 以下代码片段名为ParameterDisplayer类对此进行了演示重点在displayParametersMetadata(String[])方法上。 ParameterDisplayer.java package dustin.examples.jdk8;import static java.lang.System.out; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.lang.reflect.Parameter;/*** Uses JDK 8 Parameter class to demonstrate metadata related to the parameters* of the methods and constructors of the provided class (includes private,* protected, and public methods, but does not include methods inherited from* parent classes; those classes should be individually submitted).* * author Dustin*/ public class ParameterDisplayer {private static void displayParametersMetadata(final String[] classesNames){for (final String className : classesNames){try{final Class clazz Class.forName(className);// Get all classs declared methods (does not get inherited methods)final Method[] declaredMethods clazz.getDeclaredMethods();for (final Method method : declaredMethods){writeHeader(Method method.toGenericString() has method.getParameterCount() Parameters:);int parameterCount 0;final Parameter[] parameters method.getParameters();for (final Parameter parameter : parameters){out.println(\targ parameterCount : (parameter.isNamePresent() ? parameter.getName() : Parameter Name not provided,) (isParameterFinal(parameter) ? IS : is NOT ) final, type parameter.getType().getCanonicalName() , and parameterized type of parameter.getParameterizedType() and (parameter.isVarArgs() ? IS : is NOT ) variable. );}}}catch (ClassNotFoundException cnfEx){out.println(Unable to find class className);}}}private static void writeHeader(final String headerText){out.println(\n);out.println( headerText);out.println();}/*** Indicate whether provided Parameter is final.* * param parameter Parameter to be tested for final modifier.* return {code true} if provided Parameter is final.*/private static boolean isParameterFinal(final Parameter parameter){return Modifier.isFinal(parameter.getModifiers());}public static void main(final String[] arguments){if (arguments.length 1){out.println(You must provide the fully qualified name of at least one class.);System.exit(-1);}displayParametersMetadata(arguments);} } 我最初考虑过对JDK的知名类运行此类但是意识到这并不太有用因为这些类不太可能是使用-parameters选项构建的。 因此我创建了一个简单的示例类来辅助演示。 它称为ManyMethods然后显示。 ManyMethods.java package dustin.examples.jdk8;import java.util.List;/*** Class with numerous methods intended to be used in demonstrating JDK 8s new* Parameter class.* * author Dustin*/ public class ManyMethods {public ManyMethods() {}private void addArrayOfStrings(String[] strings) {}private void addManyStrings(final String ... strings) {}private void addListOfStrings(final ListString strings) {}Overridepublic String toString(){return ManyMethods;} } 接下来的两个屏幕快照演示了ManyMethods不使用-parameters选项的情况下编译的ManyMethods实例上运行ParameterDisplayer 。 最显着的区别是不使用-parameters选项进行编译时不提供参数名称。 同样如果没有-parameters选项则在编译时参数是否为final也没有可信信息。 在不使用-parameters进行编译的情况下无论-parameters是否为final Parameter.getModifiers方法均不包含final 。 ParameterDisplayer类使用Parameter.isNamePresent以编程方式标识不存在参数名称当未使用-parameters选项进行编译时。 如果未进行检查则Parameter.getName返回的参数名称将为“ arg”加上参数编号第一个参数为arg0第二个参数为arg1依此类推。 ManyMethods类中具有参数的三个方法中的ManyMethods具有该参数的final修饰符。 仅当使用-parameters选项编译类时才可以通过使用Parameter.getModifiers进行反射来正确识别这些情况。 略相关的旁注Sun / Oracle工具文档始终由“ windows”页面和“ solaris”页面组成后者通常用于描述特定工具如何在Linux和Unix上的所有版本上工作。 我注意到Java 8文档对此进行了更改。 该文档仍然具有“ windows”版本但是Unix / Linux版本现在其URL中具有“ unix”。 为了说明这一点这里是Java SE 7和Java SE 8 javac工具页面的URL http://docs.oracle.com/javase/8/docs/technotes/tools/windows/javac.html http://docs.oracle.com/javase/8/docs/technotes/tools/unix/javac.html http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html 回到新的使用Java 8 参数类值得注意的是存储此附加参数元数据的已编译.class文件有所增加。 对于上面显示的我的ManyMethods类 .class文件从909字节扩大到961字节。 像Method一样 构造 方法扩展了Executable 因此Constructor类享有与Method相同的getParameters方法。 当使用这些额外信息显式编译代码时Java 8将提供有关方法和构造函数参数的更多详细信息。 翻译自: https://www.javacodegeeks.com/2014/04/constructormethod-parameters-metadata-available-via-reflection-in-jdk-8.html
http://www.huolong8.cn/news/82774/

相关文章:

  • 做外贸翻译用哪个网站soho外贸网站建设
  • h5制作软件免费 fou沈阳网站关键词优化排名
  • 钓鱼网站盗号下载微信公众号怎么做文章编辑
  • 怎么制作网站导航页惠州网站建设乐云seo在线制作
  • 网站上推广游戏怎么做17素材网下载
  • 去别人网站挂黑链网站注册网站违法吗
  • 网站建设百度文库门户cms
  • 秦皇岛建设网站官网重庆住房城乡建设网站
  • wordpress 系统找不到指定的文件.推广关键词如何优化
  • 电子商务网站建设 价格wordpress获取时间函数
  • 深圳网站搭建软件设计是什么工作
  • 网站建设要用到编程吗一个公司设计网站怎么做
  • 泰州高端网站建设wordpress 后台开发
  • 建设网站作业自己做第一个网站
  • 做视频点播网站如何赚钱贵阳搜索引擎排名推广
  • 公众号网站开发网络班级网站建设
  • 如何做网站关键词霸屏企业软件开发公司
  • 如何为网站添加谷歌分析工具设计网站公司哪里好
  • 上海网站公司深圳做网站设计制作开发
  • 梓潼移动网站建设百度云 做网站
  • 网站建设用到什么软件深圳市中心是哪个区
  • 工信部 网站开发设计师简单的美食网站模板免费下载
  • 懒人免费建站模板做网站首页ps分辨率多少
  • 网站的主题有哪些贴心网络推广方法
  • 网站制作公做网站如何购买服务器
  • 承德网站建设电话如何做能放照片的网站
  • 网站开发业务需求分析硅云wordpress多站点
  • 网站对公司的作用是什么意思做网站没有做退钱
  • 张家港网站建设微信公众号怎么创建一个公众号
  • 减肥单页网站小程序有什么用