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

网站 用什么数据库业余从事网站开发

网站 用什么数据库,业余从事网站开发,成都科技网站建设电话多少,网页设计与制作教程知识点methodhandle由于Java的Reflection API#xff0c;我们已经能够在运行时检查和更改程序执行。 特别是#xff0c;我们可以在运行时观察接口/类/方法和字段#xff0c;而无需在编译时知道它们的名称。 JDK 7为这种动态/运行时检查引入了一个新的参与者#xff0c;即方法句柄… methodhandle 由于Java的Reflection API我们已经能够在运行时检查和更改程序执行。 特别是我们可以在运行时观察接口/类/方法和字段而无需在编译时知道它们的名称。 JDK 7为这种动态/运行时检查引入了一个新的参与者即方法句柄即抽象类java.dyn.MethodHandle的子类。 方法句柄为我们提供了调用非公共方法的不受限制的功能例如可以由访问它的类在非公共方法上形成它。 与使用Reflection API相比访问检查是在创建方法句柄时执行的而不是每次调用该方法时都执行。 假设我们有一个需要允许对其私有方法之一进行受控访问的类。 下面的类定义了此方法并描述了两种访问方法Reflection / MethodHandle。 public class MethodAccessExampleWithArgs {private final int i;public MethodAccessExampleWithArgs(int i_) {i i_;}private void bar(int j, String msg) {System.out.println(Private Method \bar\ successfully accessed : i , j : msg !);}// Using Reflectionpublic static Method makeMethod() {Method meth null;try {Class[] argTypes new Class[] { int.class, String.class };meth MethodAccessExampleWithArgs.class.getDeclaredMethod(bar,argTypes);meth.setAccessible(true);} catch (IllegalArgumentException e) {e.printStackTrace();} catch (NoSuchMethodException e) {e.printStackTrace();} catch (SecurityException e) {e.printStackTrace();}return meth;}// Using method handlespublic static MethodHandle makeMh() {MethodHandle mh;MethodType desc MethodType.methodType(void.class, int.class,String.class);try {mh MethodHandles.lookup().findVirtual(MethodAccessExampleWithArgs.class, bar, desc);System.out.println(mh mh);} catch (NoAccessException e) {throw (AssertionError) new AssertionError().initCause(e);}return mh;} } 以下是一个类用于测试访问私有方法“ bar”的两种方法 public class MethodAccessMain {private static void withReflectionArgs() {Method meth MethodAccessExampleWithArgs.makeMethod();MethodAccessExampleWithArgs mh0 new MethodAccessExampleWithArgs(0);MethodAccessExampleWithArgs mh1 new MethodAccessExampleWithArgs(1);try {System.out.println(Invocation using Reflection);meth.invoke(mh0, 5, Jabba the Hutt);meth.invoke(mh1, 7, Boba Fett);} catch (IllegalAccessException e) {e.printStackTrace();} catch (IllegalArgumentException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}}private static void withMhArgs() {MethodHandle mh MethodAccessExampleWithArgs.makeMh();MethodAccessExampleWithArgs mh0 new MethodAccessExampleWithArgs(0);MethodAccessExampleWithArgs mh1 new MethodAccessExampleWithArgs(1);try {System.out.println(Invocation using Method Handle);mh.invokeExact(mh0, 42, R2D2);mh.invokeExact(mh1, 43, C3PO);} catch (Throwable e) {e.printStackTrace();}}public static void main(String[] args) {withReflectionArgs();withMhArgs();} } 如何运行代码– JDK7 b129和Netbeans 7.0 Beta 2 上面的代码已经在Netbeans IDE 7.0 Beta 2下使用JDK 7的内部版本129进行了测试并且要运行它需要以下额外的VMOptions -XX UnlockExperimentalVMOptions -XX EnableMethodHandles -XX EnableInvokeDynamic在“运行”下设置项目配置自定义 VMoptions 以便在不接收运行时异常的情况下使用InvokeDynamic和MethodHandle。 JDK7 b131和Netbeans 7.0 Beta 2的问题 如果您已升级到最新版本131则结果将取决于编译和运行代码的环境。 更具体地说Netbeans IDE 7.0 Beta 2输出以下内容 run: Invocation using Reflection Private Method bar successfully accessed : 0, 5 : Jabba the Hutt! Private Method bar successfully accessed : 1, 7 : Boba Fett!java.dyn.WrongMethodTypeException: (ILjava/lang/String;)V cannot be called as ([Ljava/lang/Object;)Ljava/lang/Object; mhbar(MethodAccessExampleWithArgs,int,String)void Invocation using Method Handle at ben.example.MethodAccessMain.withMhArgs(MethodAccessMain.java:46) at ben.example.MethodAccessMain.main(MethodAccessMain.java:55)BUILD SUCCESSFUL (total time: 0 seconds) JDK7 b131和Eclipse 3.6.2的问题 该示例已在Eclipse 3.6.2 Helios上使用相同的参数-XX UnlockExperimentalVMOptions -XX EnableMethodHandles -XX EnableInvokeDynamic在“运行运行配置参数 VM参数”下进行了进一步测试但是我们已经提供相同的输出。 从已经提示我们的异常中我们可以看到我们的方法原本是用intI字符串Ljava / lang / String调用并返回voidV来调用的而不是使用Object的数组并返回一个Object。 这表明在IDE中使用的编译器存在一些问题可能与命令行编译器不同。 在命令行上运行代码JDK7 b131 如果您碰巧在计算机上构建了129后JDK7并且希望运行上述示例而没有任何问题则可能应该坚持编译javac并运行 java -XX UnlockExperimentalVMOptions -XX EnableMethodHandles -XX EnableInvokeDynamic com.wgjd.MethodHandleExample.MethodAccessMain 从命令行输入MethodHandle代码。 修复了JDK7 b131和IDE 目前尚无确定何时可以运行方法句柄而没有额外的VMOptions开销的日期但是如果您想跟上达芬奇机器项目的最新动态请注意动态调用的实现确保您已订阅其邮件列表 。 还值得一提的是从前面提到的邮件列表中我们发现有一个复杂的更改该更改将多包代码合并到一个包中并包括准备从java.dyn到java.lang的干净重命名。调用 。 修复由于多个包之间的依赖性而导致的API中的某些缺陷是必需的。 参考文献 Java 7开发人员博客上的 JCG合作伙伴介绍了MethodHandle及其用法 经验丰富的Java开发人员 编码愉快 不要忘记分享 拜伦 相关文章 JDK中的设计模式 Java内存模型-快速概述和注意事项 Java Fork / Join进行并行编程 依赖注入–手动方式 了解和扩展Java ClassLoader 翻译自: https://www.javacodegeeks.com/2011/03/glimpse-at-java-7-methodhandle-and-its.htmlmethodhandle
http://www.zqtcl.cn/news/727749/

相关文章:

  • 做网站的软件图标上海建站外贸
  • 保定网站建设推广成都移动端网站建设
  • 服务平台型网站做那个网站比较好
  • 网站做icp备案需要多久上海人才引进官网
  • 国外的设计网站app有什么好的免费网站做教育宣传语
  • 做期货都看那些网站淮北网
  • 网站建设的需求怎么写网站头条怎么做
  • 宜春seoseo网站自动推广
  • 张家界酒店网站建设人人设计网网址
  • 电脑系统做的好的网站什么网站做一手房好
  • 为什么用MyEclipse做网站上海境外输入
  • 做的比较好的小众网站go 是做网站的吗
  • 手机网站快速建设网站接入支付宝需要网站备案吗
  • 贵州省住房城乡建设厅网站农业营销型网站源码
  • 网站开发使用哪种语言wordpress 免费主机
  • 山东免费网站制作绿色食品网站模板
  • 做搜狗网站优化点广州网站开发人
  • 网站建设违法行为广东seo快速排名
  • 体育彩票网站开发该做哪些步骤深圳网站建设策划方案
  • 金华网站建设电话做网站用虚拟机还是服务器
  • 整容医院网站建设目的顺企网贵阳网站建设
  • 微网站 htmlseo做的好的网站
  • 免费做网站推荐东平网页设计
  • 所有复刻手表网站wordpress 标题简码
  • 云南建设厅建设网站首页网站建设s
  • 网站用户需求报告网站充值怎么做的
  • 找代码的网站有一个网站是做釆购的是什么网
  • 做外贸最好的网站有哪些php网站开发工程师待遇
  • 做推文封面的网站首页>新闻>正文 网站怎么做
  • 黄页推广引流网站企业网站导航菜单