Java 中的 xx ≠ null 是什么新语法
作者:Java技术栈 发布时间:2022-09-10 20:51:13
奇怪的不等于(≠)
最近,栈长用 IntelliJ IDEA 看源码时发现:
咦~这是什么鬼?
Java 不等于的写法不是一直都是 != 么?什么时候可以写 ≠ 了??
不科学啊~
以为我是老花眼了,认真看了几遍,觉得应该是 IDEA 的特效吧,然后去点那个符号,发现也还原不了原样。。。
然后互联网网冲浪了一翻,终于被我找到了这个开关:
Preferences > Editor > Reader Mode > Font ligatures
Reader Mode: 用于只读模式的编辑器设置。
Font ligatures: ligatures 是 "绳索“、”绷带" 的意思,Font ligatures 不就是可以理解为 "字体绷带" 么,所以 != 被显示成 ≠ 就不奇怪了。
取消这个开关后,再来看下上面的源码:
终于恢复正常了,这样看得才舒服。。
Ligatures扩展
话说在源码中可以把 != 被显示成 ≠,那在正常的代码编辑器应该也能显示吧?
没错!!
栈长在设置菜单中根据 "ligatures" 搜索,发现有好几处设置 Font ligatures 的地方:
然后打开这个选项:
Preferences > Editor > Font > Enable font ligatures
栈长随便写了些代码测试了下:
正常的代码编辑器也能显示!
从上面的测试代码可以看出,我加了个 >=,所以不仅限于不等于,更多的符号可以通过切换这个开关来看下。
关闭开关,原生显示:
打开开关,代替显示:
我现在再把测试代码复制出来:
public class Test {
public static void main(String[] args) {
int n = 1;
if (n != 0) {
System.out.println(1);
}
if (n >= 1) {
System.out.println(2);
}
}
}
可以看到,显示归显示,代码复制出来还是正常的语法的。
总结
好了,今天栈长给大家分享了 IDEA 的这个 Font Ligatures 开关,也不知道 IDEA 是在哪个版本中搞了这个默认开关,真是让人蛋疼。。
这个感觉就和 IDEA 中的智能显示如出一辙:
如上所示,因为 Java 7 以上泛型类型能够自动推断,如果集合接口带了泛型,集合实现又带了泛型,那么集合实现的泛型会被折叠成 ~ 显示,鼠标放上去或者点击它就会显示原生代码,并且还能提示你集合实现中的泛型是多余的。
但是很无语,像不等于符号这种却不能点击/悬浮显示原生符号,需要一个硬开关。
总之,我觉得这个东西的存在根本就没鸟用,也不是很建议大家使用,最终我就默默地把所有的 Font Ligatures 开关都关闭了,不然会混淆视听。
当然,萝卜白菜各有所爱,有喜欢这种显示方式的那就是真香定律了。
IDEA 香是香,可能你会说用它要收费,其实它也有开源的社区版本,收费的专业版也很容易申请到激活码,关注公众号Java技术栈,回复:IDEA,可以阅读我分享过的获取正版 IDEA 激活码的教程,很多粉丝都反馈说轻松得到了,感兴趣的都可以去申请,不能太容易了。
最后,如果本文对你有帮助,点个在看鼓励一下哦!也欢迎分享转发给更多有需要的朋友~
你还遇到过哪些 IDEA 奇奇怪怪的问题?欢迎分享~
版权申明:本文系公众号 "Java技术栈" 原创,原创实属不易,转载、引用本文内容请注明出处,禁止抄袭、洗稿,请自重,尊重大家的劳动成果和知识产权,抄袭必究。
来源:https://www.cnblogs.com/javastack/archive/2021/06/22/14918575.html
猜你喜欢
- 一、LinkedHashMap的类继承关系二、源码分析1.自己对LinkedHashMap的理解从继承关系上,我们看到LinkedHashM
- 1. 父工程构建1.1 Maven项目搭建环境版本JDK1.8Maven3.6+Maven模板maven-archetype-size删除父
- 前言前阵子有同学反馈Flutter中的http请求无法通过fiddler抓包,作者喜欢使用Charles抓包工具,于是抽时间写了个小demo
- renameTo方法public boolean renameTo(File dest),File类中的renameTo方法可以操作文件或目
- yml文件参数的读取附上一个较为常见的application.yml文件示例server: port: 9999 u
- 最近一段时间生产环境频繁出问题,每次都会生成一个hs_err_pid*.log文件,因为工作内容的原因,在此之前并没有了解过相关内容,趁此机
- 使用对象初始值设定项初始化对象可以使用对象初始值设定项以声明方式初始化类型对象,而无需显式调用类型的构造函数。下面的示例演示如何将对象初始值
- 寻找到application.yml的读取的操作。从spring.factories 中查看到# Application Listeners
- java反射机制是什么反射机制是在运行状态中,可以知道任何一个类的属性和方法,并且调用类的属性和方法;反射机制能够做什么1、判断运行对象的所
- 1.application.yml中添加两个datasourceserver: port: 8080spring: application:
- Lambda用到了JDK8自带的一个函数式接口Comparator<T>。准备一个Apple类public class Appl
- 写在前面:使用springboot作为web框架,方便开发许多,做分布式开发,dubbo又不可少,那么怎么整合在一起呢,跟我学一遍,至少会用
- 今天来记录一下,在项目中因为基本类型,所产生的bug包装类:8种基本类型的包装类应用场景:数据库建立实体映射多用包装类这两句话是重点:就是建
- 最开始接触到相关的内容应该是从volatile关键字开始的吧,知道它可以保证变量的可见性,而且利用它可以实现读与写的原子操作。。。但是要实现
- 在Spring Cloud 的Feign组件中并不支持文件的传输,会出现这样的错误提示:feign.codec.EncodeExceptio
- 这篇文章主要介绍了springboot使用事物注解方式代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 前言windows自带的游戏《扫雷》是陪伴了无数人的经典游戏,本程序参考《扫雷》的规则进行了简化,用java语言实现,采用了swing技术进
- springboot 启动找不到主类利用eclipse的maven插件,清理了了一下springboot的项目,结果再启动就找报找不到主类的
- 目录1、下面的代码运行的结果是:2、下面有关java实例变量,局部变量,类变量和final变量的说法,错误的是?3、执行如下代码段后,变量s
- Java与C++实现相同的MD5加密算法1、Java版package com.lyz.utils.common;import java.io