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

网站排名第一/百度联系方式人工客服

网站排名第一,百度联系方式人工客服,玩具网站建设方案,做网站负责人风险06年写的在使用匿名内部类时,当使用了反射机制来调用其中的方法就会出现访问异常,这是在前几天写程序时遇到的,所以在写匿名内部类时一定要注意是否在其它地方使用了反射调用。下面给出部份代码来说明此问题。public classSuperTest {public …

06年写的

在使用匿名内部类时,当使用了反射机制来调用其中的方法就会出现访问异常,这是在前几天写程序时遇到的,所以在写匿名内部类时一定要注意是否在其它地方使用了反射调用。下面给出部份代码来说明此问题。

public classSuperTest {public voidhello() {

System.out.println("Hello from SuperTest");

}

}public classExec {public static voidrun(SuperTest target) {

System.out.println();

System.out.print("base class > ");

run(target, SuperTest.class, "hello"); //1 这里可以正常执行

System.out.print("obj class > ");

run(target, target.getClass(),"hello"); //2 这里可能产生异常

}static voidrun(Test1 target, Class cls, String method) {try{

cls.getMethod(method,null).invoke(target, null);

}catch(Exception x) {

System.out.println(x);

}

}

}public classTest {public static voidmain(String[] args) {

Exec.run(newSuperTest() {public voidhello() {

System.out.println("Hello from Test");

}

});

}

}

上面的代码看似很简单运行时一般都不会有什么错误出现,但是如果将类Test与Exec放在不同包的时候,就会出现异常。因为Exec类无法调用Test中匿名内部类的hello方法导致异常,也许到这里大家都觉得容易理解,但为什么在注释1的地方可以通过,在注释2的地方就会出异常呢?这个问题就会使许多朋友开始疑惑了。下面针对该部份内容进行讨论学习。

根据匿名内部类的定义,我们知道:

Exec.run(newSuperTest() {public voidhello() {

System.out.println("Hello from Test");

}

});

的意思是产生一个匿名的class对象,此匿名class继承自SuperTest类,new后返回一个SuperTest类型的对象。那么为什么注释2的地方会出异常呢,我们仔细想一下匿名内部类的定义就很清楚了,上面这段代码可以等同于下面:

Exec.run(new Test().newMySuperTest());class MySuperTest extendsSuperTest {public voidhello() {

System.out.println("Hello from Test");

}

}

这样就很容易理解了,在注释2的地方使用了target.getClass(),而它得到的Class就是MySuperTest,但是此类的修饰符是default的,也就是说在其它包是不能访问的,所以使用此方法进行调用时会出现异常。虽然容易理解,但开发时经常不注意,常出现类似的问题。

解决方法当然也是有多种的,呵呵,如果将class MySuperTest加上public修饰符,可以解决此问题,但这样就不能再使用匿名内部类了,所以也可以将Exec类进行修改,就是在注释2的地方获取对象的父类,然后再调用,这样就可以使用这种结构(但需注意,获取父类时一定要先判断是否有所要调用的方法,因为有的并不包含此方法)。

http://www.lbrq.cn/news/1303273.html

相关文章:

  • 个人做网络推广哪个网站好/销售的技巧与口才
  • 2014 网站建设/如何优化企业网站
  • 如何快速提高网站权重/百度广告投放平台官网
  • 个人做网站报价/网站推广推广
  • 自己做店铺网站/百度搜索的优势
  • 幼儿园网站怎么做的/项目外包平台
  • asp动态网站制作流程/上海野猪seo
  • 响应式网站排版/浑江区关键词seo排名优化
  • 做网站资源/建网站的公司排名
  • 上海网站建设公司 珍岛/百度网站排名关键词整站优化
  • 成都旅游景点攻略/山西seo排名厂家
  • wordpress 搜索 404/seo工具网站
  • 陕西网站建设托管/网站收录什么意思
  • 只建设电子商务网站不维护/点击排名软件哪个好
  • 哈尔滨工程信息网/百度 seo优化作用
  • 海南网站建设网站开发小程序app/软文是什么东西
  • 邯郸做wap网站找谁/html网页制作网站
  • 如何做外贸网站/产品软文范例大全
  • 网站建设页面生成/平台推广是做什么的
  • 手机网站安全证书过期怎么处理/站长之家怎么找网址
  • pc端网站生成wap版/网站视频播放代码
  • wordpress网站程序员/潍坊网站外包
  • 专门做视频的网站有哪些/百度怎么推广自己的信息
  • 江苏城乡住房和城乡建设厅网站/杭州百度推广代理商
  • 网站微信分享链接怎么做的/站长素材官网免费
  • 浙江省建设监理协会管网站/一句话宣传自己的产品
  • 网站维护费用包括哪些/如何搭建公司网站
  • 旅游网站的设计方案怎么做/贺贵江seo教程
  • 贵阳哪里可以做网站/网站设计制作哪家好
  • 两学一做学习网站/互联网营销
  • Linux C 进程基本操作
  • mongodb-org-mongos : Depends: libssl1.1 (>= 1.1.1) but it is not installable
  • SVG基础语法:绘制点线面的简单示例
  • 2025年视频超高清技术应用全景介绍
  • 第六章 OBProxy 路由与使用运维
  • Mybatis07-逆向工程