Java中var的使用方法

2024-08-26 16:06:14 浏览数 (2)

前言

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

var 使用

例如用var定义一个int变量

代码语言:javascript复制
typescript 代码解读复制代码public class VarDemo {

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

输出结果为

image.pngimage.png

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

代码语言:javascript复制
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()指定类型,直接使用

代码语言:javascript复制
ini 代码解读复制代码  var list  = new ArrayList<>();

会被推断为Object类型

jdk11升级

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

代码语言:javascript复制
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不能定义变量

代码语言:javascript复制
typescript 代码解读复制代码public class Var2Demo {

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

这种会报错

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

代码语言:javascript复制
kotlin 代码解读复制代码public class Var2Demo {

  private var a;
}

这种也是不允许的

3、不能作为方法入参

代码语言:javascript复制
typescript 代码解读复制代码public class Var2Demo {

    public void process(var list) { }
}

总结

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

0 人点赞