Java中var的使用方法

简介: 这篇文章主要介绍了Java中自JDK10起引入的新特性`var`,这是一种局部变量类型推断功能,旨在简化代码书写并提升开发效率。通过示例展示了如何使用`var`定义不同类型的变量,包括基本数据类型及集合类。作者还特别强调了在使用`var`时的一些限制与注意事项,比如无法定义未初始化的变量、不适用于类成员变量以及不可作为方法参数等。最后,文章指出虽然`var`能带来便利,但也可能影响代码的可读性,建议开发者根据实际情况合理使用。

前言

var是JDK10之后推出的语法糖,用它来定义局部变量,并且var可以进行局部变量类型推断

var 使用

例如用var定义一个int变量

typescript

代码解读

复制代码

public class VarDemo {

    public static void main(String[] args) {
        var a = 1;
        a = a + 1;
        System.out.println(a);
    }
}

输出结果为

这里var能推断出a为int类型 如使用List

csharp

代码解读

复制代码

public class Var1Demo {

    public static void main(String[] args) {
        var list  = new ArrayList<Integer>();
        list.add(1);
        list.add(2);
        System.out.println(list);
    }
}

但这种要注意的是,必须在new ArrayList()指定类型,直接使用

ini

代码解读

复制代码

  var list  = new ArrayList<>();

会被推断为Object类型

jdk11升级

JDK11对var做了调整,允许var关键字用于Lambda函数里面的参数类型声明,如

csharp

代码解读

复制代码

public class Var1Demo {

    public static void main(String[] args) {
        var result = Stream.of("aa", "bb", "cc").reduce((var x, var y) -> x + y);
        System.out.println(result.orElseThrow());

        var list = Stream.of("aa", "bb", "cc").collect(Collectors.toList());
        System.out.println(list);
    }
}

var使用要注意的点

1、var不能定义变量

typescript

代码解读

复制代码

public class Var2Demo {

    public static void main(String[] args) {
        var a ;
    }
}

这种会报错

2、var只能在方法内定义变量,不允许定义类的成员变量

kotlin

代码解读

复制代码

public class Var2Demo {

  private var a;
}

这种也是不允许的

3、不能作为方法入参

typescript

代码解读

复制代码

public class Var2Demo {

    public void process(var list) { }
}

总结

总之,jdk10之后提供使用var方便在开发中使用,提高了程序开发效率,但是在一定程序上可能会降低可读性,合理的利用jdk10提供的var语法糖,可以帮助开发,当然效果因人而异


转载来源:https://juejin.cn/post/7367249733272387619

相关文章
|
10月前
|
存储 Java API
Java线程的使用方法
在上面的demo中,当执行到new Thread(futuretask).start()的时候,后台就会新建一个线程异步去执行call函数,而不等call执行完,当前代码会继续执行下去。但是特别需要注意的一点是,当你用futuretask.get()来获取线程执行结果的时候,如果此刻call() 还没执行完,futuretask.get()会一直阻塞下去等待返回结果。
41 0
|
2月前
|
算法 Java API
多线程线程池问题之synchronized关键字在Java中的使用方法和底层实现,如何解决
多线程线程池问题之synchronized关键字在Java中的使用方法和底层实现,如何解决
|
3月前
|
IDE Java 程序员
Lombok使用方法和总结
Lombok使用方法和总结
|
3月前
|
JSON IDE Java
Java反射详解:核心概念、使用方法与实际应用
Java反射详解:核心概念、使用方法与实际应用
60 2
|
3月前
|
Java 编译器
Java基础5-一文了解final关键字的特性、使用方法,以及实现原理(二)
Java基础5-一文了解final关键字的特性、使用方法,以及实现原理(二)
25 0
Java基础5-一文了解final关键字的特性、使用方法,以及实现原理(二)
|
2月前
|
Java 调度 开发者
Java定时器的使用方法与调度策略
Java定时器的使用方法与调度策略
|
3月前
|
Java Maven Python
技术笔记:Lombok介绍、使用方法和总结
技术笔记:Lombok介绍、使用方法和总结
58 0
|
3月前
|
缓存 安全 Java
Java基础5-一文了解final关键字的特性、使用方法,以及实现原理(一)
Java基础5-一文了解final关键字的特性、使用方法,以及实现原理(一)
25 0
|
4月前
|
Java 编译器
Java super的使用方法
Java super的使用方法
|
11月前
|
存储 缓存 NoSQL
【缓存】J2Cache —— 基于内存和 Redis 的两级 Java 缓存框架的使用方法
【缓存】J2Cache —— 基于内存和 Redis 的两级 Java 缓存框架的使用方法
378 0