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

无锡品牌学会网站建设网站开发部门结构

无锡品牌学会网站建设,网站开发部门结构,唐山百度推广,wordpress循环插件1、现象1.1 问题场景最近#xff0c;在写测试代码时#xff0c;将一个类(这里暂且称为ClassA)放在在缺省包中#xff0c;也就是说#xff0c;直接放在了src目录下#xff0c;没有创建包。然后#xff0c;将这个类打入了jar文件#xff0c;提供给另外的工程(这里称为Proj…1、现象1.1 问题场景最近在写测试代码时将一个类(这里暂且称为ClassA)放在在缺省包中也就是说直接放在了src目录下没有创建包。然后将这个类打入了jar文件提供给另外的工程(这里称为ProjA)用结果发现了非常神奇的现象。在ProjA中如果从缺省包中引用ClassA可以引用到。但是如果创建一个包在包中引用ClassA就会发现引用不到报错类找不到。第一反应是是不是需要import啊想写一个import语句。但是由于ClassA放在缺省包中也没法通过import包的方式引用这个类(因为没有包名)。这就比较尴尬了。搜了下发现不只是jar包中存在这个问题。这是java的一个普遍现象Java在其它包中无法引用缺省包中的类。1.2 机制解析其实细想一下这个也比较好理解。因为如果在包中不指定报名引用一个类一般是引用同一个包中的类。直觉上我们可能会认为如果在同一个包中找不到的这个类java应该取缺省包看看找下缺省包中是否能够找到这个类。然而令人失望的是java现在没有这个机制(当然也有可能是因为引入这个机制之后会导致混乱。嗯这个原因的可能性非常大。。。)。2、解决方法这里解决的方法也算是比较容易。大家在写java代码时一定要注意尽量将类放在一个显式指定的包中不要直接扔在缺省包中。上面的方法适用于事前控制。如果情况已经出了那么该如何在其他包中访问缺省包中的类呢答案就是在于java的反射机制。2.1 反射介绍在Java语言中可以通过如下的反射机制调用一个类的方法。具体如下首先通过反射获得指定类对应的Class对象Class c Class.forName(被调用类名);获得指定类中的方法(通过传入方法名、参数类型等确认)Method method c.getMethod(被调用方法名, new Class[] { 参数列表类型 });通过invoke方法传入执行方法的类实例和方法参数完成方法调用Object value method.invoke(class.newInstance(), new Object[]{ new String(参数一),new String(参数二)});如果要调用的方法是类的静态方法就不需要传入实例实例指定为null即可。Object value method.invoke(null, new Object[]{ new String(参数一),new String(参数二)});比如想调用的类名为MyClass,其中有方法为String myMethod(String str1,String str2);则调用如下Class class Class.forName(MyClass);Method method snmpHandler.getMethod(myMethod, new Class[] { String.class,String.class });String value method.invoke(class.newInstance(), new Object[]{ new String(str1), new String(str2)});//如果是静态方法//String value method.invoke(null, new Object[]{ new String(str1), new String(str2)});2.2 例子先上代码HelloWorld.java/*** Created by chengxia on 2019/4/13.*/public class HelloWorld {public static void helloWorld(String name, String words){System.out.println(Below is the output of HelloWorld class in the Default package.);System.out.println(name said: words);}}代码的工程结构如下图。Test Module Structure(1) CallHelloWorld1.javapackage com.util.call;/*** Created by chengxia on 2019/4/13.*/public class CallHelloWorld1 {public static void main(String []args){HelloWorld.helloWorld(Kobe, Mamba out!);}}CallHelloWorld1类在包com.util.call中当其引用HelloWorld类时报错找不到如下图。Cannot Find Class in Default Package这里为了下面的测试能够正常运行在下面将报错的这行注释掉了。(2) CallHelloWorld0.java/*** Created by chengxia on 2019/4/13.*/public class CallHelloWorld0 {public static void main(String []args){HelloWorld.helloWorld(Kobe, Mamba out!);}}CallHelloWorld0由于也在缺省包所以可以正常引用HelloWorld类。运行如下Below is the output of HelloWorld class in the Default package.Kobe said: Mamba out!Process finished with exit code 0(3) CallHelloWorld2.javapackage com.util.call;import java.lang.reflect.Method;/*** Created by chengxia on 2019/4/13.*/public class CallHelloWorld2 {public static void main(String []args){try{Class c Class.forName(HelloWorld);Method m c.getMethod(helloWorld, new Class[]{String.class, String.class});m.invoke(null, new Object[]{new String(Kobe), new String(Mamba out!)});}catch(Exception e){e.printStackTrace();}}}CallHelloWorld2类在包com.util.call中为了能正常调用HelloWorld类的方法用了反射。可以正常运行如下。Below is the output of HelloWorld class in the Default package.Kobe said: Mamba out!Process finished with exit code 0参考资料
http://www.zqtcl.cn/news/5728/

相关文章:

  • 嘉兴营销型网站建设经典重庆区县论坛
  • 高明网站建设哪家好免费软件定位对方手机位置
  • 重点建设专业 专题网站做公司网站的尺寸一般是多大
  • 网页代理网站甘肃省城市建设档案馆网站
  • 国外做各种趣味实验的网站响应式网站开发方法
  • 建设部质监局信息查询官方网站团购网站模板 免费
  • 网站前台主要的功能是什么商城网站设计公司
  • 北京西站地铁是几号线杭州市建设工程招标网
  • 企业推广建站网络推广运营团队
  • 内部网站建设软件下载网站建设策划书目录
  • 代码网站怎么制作大气ppt模板
  • 雁塔区住房和城乡建设局网站信息流广告优化师
  • 新浪网站怎么做推广网站上的个人词条怎么做的
  • 绥化北京网站建设win10 建网站
  • 网站源码 手机 微信桂林做网站哪家好
  • 什么是营销网站重庆荣昌网站建设报价
  • 手机触屏网站幻灯片自动与手动控制电路图
  • 做建材的网站网上银行登录
  • 建设网站现在免费吗微信认证 网站
  • 有没有专门帮人做图的网站深圳网站制作联系兴田德润
  • 做个个人网站多少钱建设集团网站价格
  • 网站运营经验分享ppt怎么管理好自己的网站
  • 浙江网站设计 sitecp网站开发搭建
  • 网站开发海报贵港网站建设代理
  • 商务网站建设怎样收费做排名出租网站
  • 做淘宝客网站要申请什么全国免费信息发布平台
  • WordPress插件错误南京seo公司
  • 网站建设比较好的公司个人设计网站模板
  • 策划一场活动的流程怎么让客户做网站优化
  • 免费网站空间申请有哪些网站做汽车周边服务