首页
社区
课程
招聘
[旧帖] java的空白final赋值 0.00雪花
发表于: 2012-7-18 18:46 6002

[旧帖] java的空白final赋值 0.00雪花

2012-7-18 18:46
6002
java的空白final变量: 可以有两种方式赋值班。当在构造器中赋值时,如果有super(),只能与在其后,编译后也应该是在其后进行赋值。有什么办法让编译后在super()调用之前进行的空白final的赋值。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
1.final修饰的成员变量没有默认值
2.final初始化可以在三个地方
  (1)声明的时候初始化
  (2)构造函数里初始化
  (3)要是没有static修饰的话可以在非静态块里初始化,要是有static修饰的话可以在静态块里初始化
3.使用final成员前要确保已经初始化
2012-7-20 13:00
0
雪    币: 22
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我遇到的问题是:
class abc extends def {
     final w myfinal;
     abc(xyz w, ghi u){
     super(u);
     myfinal=w;
     }

..............................
}
在这样的一个类中,空白final变量myfinal, 如何做到在super之前就给值。因为我发现编译后,总是先执行supe(), 而我发现反编译了一些别的类后居然是先执行构造器的第二行,再执行super(), 这倒底是如何做到的呢?
2012-7-20 14:47
0
雪    币: 22
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
终于找到办法解决。 不过再问一下,这个做法算不是行内保护java程序的高明手段呢?
2013-5-28 15:11
0
雪    币: 224
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼主说说怎么解决的呗
2013-5-28 15:26
0
雪    币: 22
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
两种办法:
1. 改class代码,比较麻烦,每次编译后都得改。
2.写一个方法绕过它,其实也蛮简单的哟。
2013-5-29 10:05
0
游客
登录 | 注册 方可回帖
返回
//