Java 中的 xx ≠ null 是什么新语法

奇怪的不等于(≠)

最近,栈长用 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技术栈" 原创,原创实属不易,转载、引用本文内容请注明出处,禁止抄袭、洗稿,请自重,尊重大家的劳动成果和知识产权,抄袭必究。

以上就是Java 中的 xx ≠ null 是什么新语法?的详细内容,更多关于Java xx ≠ null 的资料请关注我们其它相关文章!

(0)

相关推荐

  • Java判断对象是否为空(包括null ,"")的方法

    本文实例为大家分享了Java判断对象是否为空的具体代码,供大家参考,具体内容如下 package com.gj5u.publics.util; import java.util.List; /** * 判断对象是否为空 * * @author Rex * */ public class EmptyUtil { /** * 判断对象为空 * * @param obj * 对象名 * @return 是否为空 */ @SuppressWarnings("rawtypes") public

  • JAVA解决在@autowired,@Resource注入为null的情况

    使用SpringMVC或者SSH过程中,有时可能会遇到这么一个问题.就是在一个普通的JAVA类(不是controller也不是action类)中无法注入在spring配置文件中配置的bean. 比如你在一个普通java类想调用某个在spring中配置的service,你会发现不管你用@Resource还是@Autowired注解都无法注入,对象始终是null. 那是因为一般普通的Java类没有被spring代理,自然无法通过spring注入相关的对象.难道这样就不能调用了吗?这里提供下面一个类来

  • 详解java中String值为空字符串与null的判断方法

    Java空字符串与null的区别 1.类型 null表示的是一个对象的值,而不是一个字符串.例如声明一个对象的引用,String a=null. ""表示的是一个空字符串,也就是说它的长度为0.例如声明一个字符串String s="". 2.内存分配 String a=null:表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间. String s="":表示声明一个字符串类型的引用,其值为""空

  • JAVA null详解

    前言 对于Java程序员来说,null是令人头痛的东西.时常会受到空指针异常(NPE)的骚扰.连Java的发明者都承认这是他的一项巨大失误.Java为什么要保留null呢?null出现有一段时间了,并且我认为Java发明者知道null与它解决的问题相比带来了更多的麻烦,但是null仍然陪伴着Java. 我越发感到惊奇,因为java的设计原理是为了简化事情,那就是为什么没有浪费时间在指针.操作符重载.多继承实现的原因,null却与此正好相反.好吧,我真的不知道这个问题的答案,我知道的是不管null

  • 详解Java去除json数据中的null空值问题

    1.描述 @JsonInclude(JsonInclude.Include.NON_NULL)标记是jackson包提供的json序列化方法,已经集成于Springboot2.0中,此方法的配置意在可以对实体json序列化的时候进行对应的数值处理. 2.使用 用注解的方式放在标记类或者属性 @JsonInclude(JsonInclude.Include.NON_NULL) public class User implements Serializable { private String us

  • Java 中的 xx ≠ null 是什么新语法

    奇怪的不等于(≠) 最近,栈长用 IntelliJ IDEA 看源码时发现: 咦-这是什么鬼? Java 不等于的写法不是一直都是 != 么?什么时候可以写 ≠ 了?? 不科学啊- 以为我是老花眼了,认真看了几遍,觉得应该是 IDEA 的特效吧,然后去点那个符号,发现也还原不了原样... 然后互联网网冲浪了一翻,终于被我找到了这个开关: Preferences > Editor > Reader Mode > Font ligatures Reader Mode: 用于只读模式的编辑器设

  • 浅谈Java中GuavaCache返回Null的注意事项

    Guava在实际的Java后端项目中应用的场景还是比较多的,比如限流,缓存,容器操作之类的,有挺多实用的工具类,这里记录一下,在使用GuavaCache,返回null的一个问题 I. 常见使用姿势 @Test public void testGuava() { LoadingCache<String, String> cache = CacheBuilder.newBuilder().build(new CacheLoader<String, String>() { @Overri

  • Java中关于Null的9个解释(Java Null详解)

    对于Java程序员来说,null是令人头痛的东西.时常会受到空指针异常(NPE)的骚扰.连Java的发明者都承认这是他的一项巨大失误.Java为什么要保留null呢?null出现有一段时间了,并且我认为Java发明者知道null与它解决的问题相比带来了更多的麻烦,但是null仍然陪伴着Java. 我越发感到惊奇,因为java的设计原理是为了简化事情,那就是为什么没有浪费时间在指针.操作符重载.多继承实现的原因,null却与此正好相反.好吧,我真的不知道这个问题的答案,我知道的是不管null被Ja

  • Java中的Null到底是什么

    前言 对于Java程序员来说,null是令人头痛的东西.时常会受到空指针异常(NPE)的骚扰.连Java的发明者都承认这是他的一项巨大失误.Java为什么要保留null呢?null出现有一段时间了,并且我认为Java发明者知道null与它解决的问题相比带来了更多的麻烦,但是null仍然陪伴着Java. 我越发感到惊奇,因为java的设计原理是为了简化事情,那就是为什么没有浪费时间在指针.操作符重载.多继承实现的原因,null却与此正好相反.好吧,我真的不知道这个问题的答案,我知道的是不管null

  • 基于java中的null类型---有关null的9件事

    目录 关于null的9件事 1.首先,null是java中的关键字,像public.static.final 2.就像每种原始类型都有默认值一样 3.要澄清一些误解 4.null可以赋值给引用变量 5.任何含有null值的包装类 6.如果使用了带有null值的引用类型的变量,instanceof操作会返回false 7.可以使用静态方法来使用一个值为null的引用类型变量 8.可以将null传递给方法使用 9.可以使用== 或者 != 操作来比较null值 Java: null是什么?? nul

  • Java中的Unsafe在安全领域的使用总结和复现(实例详解)

    目录 0前言 1基本使用 1.1内存级别修改值 1.2创建对象 1.3创建VMAnonymousClass 2利用姿势 2.1修改值以关闭RASP等防御措施 2.2创建NativeLibrary对象实现webshell 2.3匿名的内存马 2.4shellcode和instrumentation对象构建 3总结 参考: 总结并复现了一下Unsafe在安全领域的一些应用 0 前言 unsafe里面有很多好用的方法,比如allocateInstance可以直接创建实例对象,defineAnonymo

  • Java中的Native方法

    目录 1.Native方法在Java中如何工作? 2.Java中Native方法的示例 3.总结 以下是java中如何使用native方法的基本语法: [ public / protected / private] native [return-type] methodName (); 上面的语法显示了如何在java中声明本机方法.与普通方法一样,它需要定义一个访问修饰符,后跟一个native关键字,后跟方法的返回类型,最后是方法名称,如果需要,还需要指定输入参数. 1.Native方法在Jav

  • Java中JDK14的新特性之JFR,JMC和JFR事件流(推荐)

    简介 Java Flight Recorder(JFR)是JVM的诊断和性能分析工具.它可以收集有关JVM以及在其上运行的Java应用程序的数据.JFR是集成到JVM中的,所以JFR对JVM的性能影响非常小,我们可以放心的使用它. 一般来说,在使用默认配置的时候,性能影响要小于1%. JFR的历史很久远了.早在Oracle2008年收购BEA的时候就有了.JFR一般和JMC(Java Mission Control)协同工作. JFR是一个基于事件的低开销的分析引擎,具有高性能的后端,可以以二进

  • java 中 request.getSession(true、false、null)的区别

    java 中 request.getSession(true/false/null)的区别 一.需求原因 现实中我们经常会遇到以下3中用法: HttpSession session = request.getSession(); HttpSession session = request.getSession(true); HttpSession session = request.getSession(false); 二.区别 1.      Servlet官方文档说: public Http

  • Java中String判断值为null或空及地址是否相等的问题

    String的null或空值的判断处理 笔者在开发过程中,常常碰到过下面这些错误的用法: 1,错误用法一: if (name == "") { //do something } 2,错误用法二: if (name.equals("")) { //do something } 3,错误用法三: if (!name.equals("")) { //do something } 我们来解说一下: 上述错误用法1是初学者最容易犯,也最不容易被发现的错误,

随机推荐