在c#中var关键字的一种用法是隐式类型声明。Java中var的等效语法是什么?
当前回答
JDK 10将支持它。甚至可以在早期访问版本中看到它的作用。
JEP 286:
增强Java语言,将类型推断扩展到带有初始化式的局部变量声明。
所以现在不要写:
List<> list = new ArrayList<String>();
Stream<> stream = myStream();
你写的:
var list = new ArrayList<String>();
var stream = myStream();
注:
Var现在是一个保留类型名 Java仍然致力于静态类型! 它只能在局部变量声明中使用
如果你想尝试一下,而不是在本地系统上安装Java,我创建了一个安装了JDK 10的Docker镜像:
$ docker run -it marounbassam/ubuntu-java10 bash
root@299d86f1c39a:/# jdk-10/bin/jshell
Mar 30, 2018 9:07:07 PM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
| Welcome to JShell -- Version 10
| For an introduction type: /help intro
jshell> var list = new ArrayList<String>();
list ==> []
其他回答
你可以通过JetBrains查看Kotlin,但它是val。不是var。
我已经为IntelliJ编写了一个插件,在某种程度上,它可以在Java中为您提供var。这是一个黑客,所以通常的免责声明也适用,但如果你在Java开发中使用IntelliJ并想尝试一下,请访问https://bitbucket.org/balpha/varsity。
一个简单的解决方案(假设你使用的是一个不错的IDE)是在所有地方输入'int',然后让它为你设置类型。
实际上我只是添加了一个名为var的类,所以我不需要输入不同的东西。
代码仍然过于冗长,但至少您不必键入它!
在Java 10中可以,但只适用于局部变量,也就是说,
你可以,
是肛门 = 10;var aString = “Var”;
但是不能,
Var anull = null;//因为在这种情况下不能推断类型
查看规范以获得更多信息。
JDK 10将支持它。甚至可以在早期访问版本中看到它的作用。
JEP 286:
增强Java语言,将类型推断扩展到带有初始化式的局部变量声明。
所以现在不要写:
List<> list = new ArrayList<String>();
Stream<> stream = myStream();
你写的:
var list = new ArrayList<String>();
var stream = myStream();
注:
Var现在是一个保留类型名 Java仍然致力于静态类型! 它只能在局部变量声明中使用
如果你想尝试一下,而不是在本地系统上安装Java,我创建了一个安装了JDK 10的Docker镜像:
$ docker run -it marounbassam/ubuntu-java10 bash
root@299d86f1c39a:/# jdk-10/bin/jshell
Mar 30, 2018 9:07:07 PM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
| Welcome to JShell -- Version 10
| For an introduction type: /help intro
jshell> var list = new ArrayList<String>();
list ==> []
推荐文章
- 套接字的连接超时和读超时之间的区别是什么?
- Java整数到字节数组
- 如何设置Windows环境下Java的环境变量
- Java Swing revalidate() vs repaint()
- Java中文件中的行数
- 指定的子节点已经有一个父节点。你必须先在子对象的父对象上调用removeView() (Android)
- 对于一个布尔字段,它的getter/setter的命名约定是什么?
- 如何获得当前屏幕方向?
- 如何在Android中渲染PDF文件
- 如何计算一个元素在列表中出现的次数
- c++中类似于java的instanceof
- 我如何解决错误“minCompileSdk(31)指定在一个依赖的AAR元数据”在本机Java或Kotlin?
- 如何POST表单数据与Spring RestTemplate?
- Mockito中检测到未完成的存根
- 我应该如何复制字符串在Java?