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

为什么 Java lib 源码中总是习惯用 var 加数字命名变量

  •  
  •   101110001 · 67 天前 · 2299 次点击
    这是一个创建于 67 天前的主题,其中的信息可能已经有所发展或是发生改变。

    java lib 源码中太多以 var 命名的变量,阅读起来感觉很难理清逻辑
    源码截图例: image.png

    16 条回复    2021-02-08 11:09:57 +08:00
    GPLer
        1
    GPLer   67 天前 via Android
    你这是反编译出来的吧。。。
    koujyungenn
        2
    koujyungenn   67 天前
    没记错的话,这是 class 文件被反编译后的“源码”,和真正的源码有点出入
    devld
        3
    devld   67 天前 via Android
    楼上
    RedBeanIce
        4
    RedBeanIce   67 天前
    附议楼上。
    101110001
        6
    101110001   67 天前
    @GPLer 我用 IDEA 直接打开的 jar 包,应该是 idea 反编译的?
    可我看别人的包,也大多数是正常的命名方式
    ![image.png]( https://i.loli.net/2021/02/07/DWrMaTCPeQ2f17E.png)
    caixiaomao
        7
    caixiaomao   67 天前   ❤️ 4
    想看真源码的话 maven 那栏有个 download sources 这个才是源码
    liuxey
        8
    liuxey   67 天前   ❤️ 1
    反编译工具的问题
    http://www.docjar.com/html/api/sun/nio/fs/WindowsFileSystem.java.html
    239 行源码是正常的,你关联一下源码就能看到原始代码了
    101110001
        9
    101110001   67 天前
    感谢大家解答!!
    dinghao188
        10
    dinghao188   67 天前
    -_ _- !
    cmlanche
        11
    cmlanche   67 天前
    额,菜了吧
    starxg
        12
    starxg   67 天前
    如果你使用了包管理器,idea 右上角会提示你下载源码,把源码下载下来就好了。
    sprite82
        13
    sprite82   67 天前
    因为这是 sun 的包,不开源的,jdk 带的源码中没有它,如果你去看看 java.lang 比如 string 就会发现命名正常而且有注释。sun 的包没源码反编译后就这样
    graffitist
        14
    graffitist   66 天前
    -g:none 或 -g:vars 来取消或生成这项信息
    如果没有生成这项信息,那么当别人引用这个方法时,将无法获取到参数名称,取而代之的是 arg0, arg1 这样的占位符
    beichenhpy
        15
    beichenhpy   66 天前
    因为是 IDE 帮你反编译的。。正常下载源码后会有正常的变量名和注释
    xrzxrzxrz
        16
    xrzxrzxrz   66 天前
    你看的这个代码文件是.class 的,下载源码后会变成.java
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3508 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 17ms · UTC 07:49 · PVG 15:49 · LAX 00:49 · JFK 03:49
    ♥ Do have faith in what you're doing.