Spring:Java内部静态类的放射创建方法

普通的反射方法创建对象是调用Class.forName(String name)方法名传入类名的全称即可,如果是在编码内部实现的话可以直接用XXX.class.getName()或 xxx.getClass().getName(),其中XXX表示类名,xxx表示对象名称。
不过这种情况在spring配置文件里面就行不通了,它会频频报找不到类的错误。结果通过编写测试程序找到了答案。
错误的方法:
平时在代码里面,访问内部静态类可以类似与访问其它类一样,只不过在包名后边加上外部类的类名。比如 cn.project是外部类的包名,OutterClass是外部类的类名,InnerClass是内部类类名。那么平时编程的时候可以直接这通过一下几种方式访问内部类。
1.cn.project.OutterClass.InnerClass 即输入全名来访问
2.OutterClass.InnerClass 这种情况只能在同一个包内部使用,如果在外部包这样调用的话,文件开头要import进类包。
3.InnerClass 这种情况只能在外部类里面使用,在其它类使用的时候就需要应用jdk6.0的新特性,就是用import static静态包含包。

问题:
可能语言规范的问题,真正编译后的内部类的类名,在内部类和外部类两个类名之间不用用"."而是用"$"来分隔的
开的
解决:
修改符号,吧“.”改成“$"即可。
即真的的类名名称是cn.project.OutterClass$InnerClass
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值