You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JShell中查看变量或表达式结果的类型?

在JShell中查看位运算表达式的结果类型

嘿,刚好我之前也在JShell里折腾过类似的需求,来给你几个实用的方法,替代Python里type()的功能:

方法1:用getClass()直接打印类型

Java里虽然没有原生的type()函数,但可以利用自动装箱和反射来查看结果类型。直接把表达式包裹后调用getClass()就行:

System.out.println((5 << -1).getClass());

执行后会输出class java.lang.Integer——这是因为基本类型int会自动装箱成Integer包装类,但你要知道,实际运算结果的原生类型是int。如果是long类型的运算(比如加L后缀),就会得到class java.lang.Long:

System.out.println((5L << -1).getClass());

方法2:利用JShell的自动变量和/vars命令

JShell有个很方便的特性:它会把你执行的每一个表达式结果自动存在$1、$2这类变量里。你可以直接对这些变量做类型查询:

  1. 先执行你的位运算表达式:
    5 << -1
    
    JShell会返回结果,同时自动创建$1变量存储这个值。
  2. 然后查看这个变量的类型:
    $1.getClass()
    
    或者用JShell的内置命令/vars,它会列出所有已定义的变量,包括自动生成的$n,并显示它们的原生类型(比如int $1 = ...):
    /vars
    

额外提示:Java位运算的类型规则

其实不用查也能大致判断结果类型:

  • 只要操作数是byte、short、char或int,位运算的结果都是int
  • 如果有一个操作数是long(比如带L后缀),结果就会是long

内容的提问来源于stack exchange,提问作者Sundar Rajan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:01:16