V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
north521
V2EX  ›  Java

java 中某些变量以 _或$开头,是什么原因?

  •  
  •   north521 · 2016 年 11 月 16 日 · 4567 次点击
    这是一个创建于 3365 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我就记得_是从 c++内部变量传过来的,$是老的 jdk 写法吧,现在没找到比较官方的资料

    21 条回复    2016-11-23 22:55:15 +08:00
    acoder2013
        1
    acoder2013  
       2016 年 11 月 16 日
    母鸡
    Zzzzzzzzz
        2
    Zzzzzzzzz  
       2016 年 11 月 16 日
    说明是从 class"反编译"出来的呗
    knightdf
        3
    knightdf  
       2016 年 11 月 16 日
    反编译的把?
    fo2w
        4
    fo2w  
       2016 年 11 月 16 日
    没什么特别原因, 就是个习惯
    或者称之为, "一群人之间的约定俗成"
    north521
        5
    north521  
    OP
       2016 年 11 月 16 日
    @Zzzzzzzzz
    @knightdf
    我看项目里面有人故意这么写的,估计是模仿 jdk 源码
    jason19659
        6
    jason19659  
       2016 年 11 月 16 日
    没见到过
    fantastM
        7
    fantastM  
       2016 年 11 月 16 日
    java 中私有内部方法可以以"_"这特殊符号开头标志一下。$倒是不知道了。。
    fyibmsd
        8
    fyibmsd  
       2016 年 11 月 16 日
    php 的人写的
    8bit
        9
    8bit  
       2016 年 11 月 16 日
    你指的内部类? JConsoleContext$ConnectionState.class ?
    Ouyangan
        10
    Ouyangan  
       2016 年 11 月 16 日
    可能是那人脑子抽
    sudoz
        11
    sudoz  
       2016 年 11 月 16 日
    @li24361 JDK 源码是这么写的?难道不是反编译过来的结果?
    a0000
        12
    a0000  
       2016 年 11 月 16 日 via Android
    变量名可以取_和$,个人习惯问题
    我看着变量名是$的,只有一个字符,特别不舒服
    KeepPro
        13
    KeepPro  
       2016 年 11 月 16 日 via Android
    楼上正解 内部类编译过得就是$.class
    zartouch
        14
    zartouch  
       2016 年 11 月 17 日 via iPhone
    _估计是约定的代码风格而已, 公司里之前的 coding style 文档就是属于类的变量名字前缀加_。 属于方法变量名字后缀加_。 现在估计是 IDE 自动高亮了已经属于可有可无的做法了
    Balthild
        15
    Balthild  
       2016 年 11 月 17 日 via Android
    php+java=phava
    YzSama
        16
    YzSama  
       2016 年 11 月 17 日
    编码规范吗?
    YzSama
        17
    YzSama  
       2016 年 11 月 17 日
    @Balthild py+java=pyjava XD...
    Balthild
        19
    Balthild  
       2016 年 11 月 17 日 via Android
    @YzSama 不应该是 jy 通红(划掉)jython 吗
    xingda920813
        20
    xingda920813  
       2016 年 11 月 17 日
    觉得 Google 的命名方式很好:
    private int mResId;
    private static int sResId;
    private static final int RES_ID;
    void method() {
    int resId = 0;
    }
    这样什么类型的变量一眼就可以看出来.
    kaneg
        21
    kaneg  
       2016 年 11 月 23 日
    $是 Java 可以在变量中使用的合法字符,一般用于编译器生成的内部类和匿名类的命名,不建议普通开发人员使用。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2518 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:05 · PVG 21:05 · LAX 05:05 · JFK 08:05
    ♥ Do have faith in what you're doing.