编译失败:

Cannot refer to an instance field arg while explicitly invoking a constructor  调用方法时不能引用一个实例变量

 package arkblue.lang.javapuzzler.n53;

 class Thing {
public Thing(int i) { }
} public class MyThing extends Thing {
private final int arg; public MyThing() {
super(arg = Math.round(12L)); //编译失败
} }

解决办法:使用了交替构造器调用机制(alternate constructor invocation)

在这个私有构造器中,表达式SomeOtherClass.func()的值已经被捕获到了变量i中,并且它可以在超类构造器返回之后存储到final类型的域arg中

 class SomeOtherClass {
static int func() {
return Math.round(12L);
}
} public class MyThing extends Thing {
private final int arg; public MyThing() {
this(SomeOtherClass.func());
} private MyThing(int i) {
super(i);
arg = i;
}
}

最新文章

  1. css个人总结
  2. IntelliJ设置鼠标悬浮提示和修改快捷键
  3. Node.js与Sails~中间查询语言Waterline
  4. [转] This Android SDK requires Android Developer Toolkit version 23.0.0 or above
  5. OpenCV 3.0 CvMat and cv::Mat Conversion
  6. php大力力 [030节] php设计系统后台菜单
  7. 实现系统函数time,获取当前时间与UTC的间隔
  8. python之supervisord启动脚本
  9. Node填坑教程——简易http服务器
  10. 快速高效掌握企业级项目中的Spring面向切面编程应用,外带讲面试技巧
  11. 电视盒子好用又强大的跨屏远程输入法 TVRemoteIME
  12. 访问 Tomcat支配项目去除项目名和端口号通过IP地址(或域名)访问
  13. .net mvc + layui做图片上传(一)
  14. redis 特性
  15. Pytorch学习笔记(二)---- 神经网络搭建
  16. Hello world &博客客户端试用
  17. pycharm something
  18. 实验五 Java网络编程及安全 实验报告 20135232王玥
  19. 【Navicat_Premium_11.0.10】破解版
  20. Appium+python的单元测试框架unittest(3)——discover(转)

热门文章

  1. 【AC自动机】【动态规划】hdu2296 Ring
  2. 【字符串哈希】bzoj3916 [Baltic2014]friends
  3. Problem Q: 零起点学算法12——求2个日期之间的天数
  4. Python 升级3.6
  5. Java高级架构师(一)第26节:测试并调整登录的业务功能
  6. ListView(下)自定义适配器
  7. ios中将事件同步到系统日历
  8. Delphi 窗体失踪在最上面的代码
  9. ORA-12537:TNS连接已关闭
  10. ZOJ 3526 Weekend Party