为了账号安全,请及时绑定邮箱和手机立即绑定

关于定义final类型字符串的方法,有点迷惑

关于定义final类型字符串的方法,有点迷惑

三国纷争 2019-03-01 10:49:12
在开发中遇到这样的代码 public class Test{ private static final String NAME = Test.class.getSimpleName(); } 我个人觉得 private static final String NAME = Test.class.getSimpleName(); 这个完全可以写成这样: private static final String NAME = "Test"; 为什么需要用反射去得到类名,这个完全没有必要呀。又不是什么公共方法,反正都是写死的,干嘛还要用一次反射?求解释
查看完整描述

2 回答

?
慕田峪9158850

TA贡献1794条经验 获得超8个赞

假设你的代码是:

public class Test{
    private static final String NAME = "Test";
}

当你在使用 IDE 对 Test 类进行重命名时,比如重命名为 Temp,那么 IDE 就会将你的代码改为:

public class Temp {
    private static final String NAME = "Test";
}

如果你重命名之前没有查看代码,那么便会出现 Bug。而如果你使用的是

private static final String NAME = Test.class.getSimpleName();

那么重命名之后就是:

public class Temp {
    private static final String NAME = Temp.class.getSimpleName();
}

就不存在这个问题。

查看完整回答
反对 回复 2019-03-01
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

我想你可以去了解一下hard code或者硬编码的危害。

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 728 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号