Java 10 中“var”的优点/缺点[关闭]

2024-01-09

AFAIK, var不是关键字Java. It is 保留类型名称。我想知道在什么情况下我们应该使用/避免它。它的使用有什么原则吗?

import java.util.HashMap;

public class Test {
    public static void main(String[] args) {
        var x = new HashMap<> (); // legal
        var y = new HashMap<String, Integer>(); // legal

        var z = "soner"; // legal
        System.out.println(z);

        var umm = null;  // xx wrong xx //
        var foo; // xx wrong usage without initializer xx //

        var var = 5; // legal

    }
}

我知道一个原因,我们在项目中实际使用过。每当有一个“大”变量时,我们就用 var 替换它。例如:

 public void test(){
     CreateEmailEsignTransactionAsync job = new CreateEmailEsignTransactionAsync(... some input);

     // vs 
     var job = new CreateEmailEsignTransactionAsync(... some input)
 }

我发现第二个示例更具可读性,这就是我们主要使用它的方式。

还有另一个可以使用它的例子(但到目前为止我还没有使用它)。以前,这可以通过仅对 lambda 表达式进行链接来实现,因为这只是编译器已知的类型 - 无法声明它们。

 public void test() {
        var test = new Object() {
            public void go() {

            }
        };

        test.go();
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 10 中“var”的优点/缺点[关闭] 的相关文章

随机推荐

  • 禁用 Flex CSS 类型选择器警告?

    我正在构建一个较大的 Flex 项目 其中包含多个模块 生成多个 SWF 的单个 Flex 项目 现在 我有一个 css 文件 正在主 SWF 标记中加载
  • 使用 JavaScript 更改输入字段的背景颜色

    我正在制作一个表单 并将输入字段设置为仅使用 JavaScript 进行读取 我想将只读属性的默认颜色更改为绿色或黄色 HTML
  • Xcode 6:如何禁用优化 (Swift)

    调试期间不会触发断点 我发现这是因为优化了代码 如何禁用优化 我浏览了每个工具栏 我能找到的最接近的选项是Product gt Perform Action gt Generate Optimisation Profile Xcode 说
  • 读取 JSF Web 应用程序静态代码中的 .properties 文件

    我想从静态块中的属性文件获取数据库连接参数 属性文件位置是WEB INF classes db properties 我会更喜欢使用getResourceAsStream 方法 我尝试了很多方法 但都返回了null private stat
  • 返回日期没有返回小时和分钟

    这是我的代码 CREATE OR REPLACE FUNCTION GET DATE P DAYS IN NUMBER RETURN DATE AS V DATE DATE BEGIN V DATE SYSDATE P DAYS DBMS
  • Odata Url 降序转换

    我需要按患者的 Visidate 降序获取数据 所以我尝试了这样的网址 192 168 1 105 33396 FalconCPDataService svc DEPhysicians format json expand DEPatien
  • NUnit:字典断言

    我想要一个一班轮 在 NUnit 中 断言两个字典是否相同 即 我想要以下代码的简洁版本 public static void DictionaryAssert
  • WPF:触发动画 - 沿 Y 轴向下移动控件

    我有一个想要向下移动的控件MouseOver 不幸的是 当我将鼠标悬停在上面时 动画不会运行 但背景颜色会改变 Toolkit Dialog是一个继承的自定义对话框控件ContentControl 另外 在最终实现中我不会使用 MouseO
  • 在 Android 上获取用户当前位置的最简单、最可靠的方法是什么?

    The LocationManager对于只需要偶尔粗略估计用户位置的应用程序来说 Android 上的 API 似乎使用起来有点痛苦 我正在开发的应用程序本身并不是真正的位置应用程序 但它确实需要获取用户的位置才能显示附近企业的列表 它不
  • Rails 中的 Carrierwave 未加载默认 URL

    我在 Carrierwave 上传器中设置默认图像时遇到问题 它似乎在 URL 前面附加了一个奇怪的类 但不渲染图像 请参阅下面的我的代码 Helper encoding utf 8 class UserpicUploader lt Car
  • 从DataTable中获取布尔值

    如何检索数据集中的布尔值 我使用的是 Visual Studio 2003 我正在尝试以下操作 但它不起作用 if product inactive don t display and redirect to main page if db
  • 将项目数据传递给反应模式

    我有一张地图 它渲染了一些项目 其中一行在下面 a this setState openDeleteModal true gt Delete a 显然 我想在用户单击删除时打开一个模式 但我必须传递一些信息 例如项目名称 项目 ID 来执行
  • switch执行所有case语句

    有人能解释一下为什么我的循环从 0 到 7 吗 我只需要获取前 3 种情况 但程序正在经历所有情况 代码位于 show 方法中 for brojac 0 brojac lt 3 brojac switch brojac case 1 fig
  • 从 SqlDataReader 创建 JSON 字符串

    UPDATE 我想到了 看看我下面的回答 https stackoverflow com questions 5554472 create json string from sqldatareader 5597472 5597472 我正在
  • PHP、MySQL、SELECT 问题

    您好 我有一个看起来很复杂的问题 但我会尽力解释得更好 这是一个逻辑问题 我有一个数据库表 该数据库表 我们称之为表 A 包含一些字符串 字符串由以下行组成 ID auto increment Text Date Time Type IDA
  • Google Cloud Run 中的 PHP 服务突然停止响应所有传入请求

    我正在 Google Cloud Run 中运行 PHP 8 1 后端应用程序 后端连接到在 Google Cloud SQL 中运行的 MYSQL 数据库 在过去的两周里 我们发生了三次完全中断的情况 后端服务器不响应任何请求 导致我们的
  • C++ 通过以非抽象子类为参数的方法重写引用抽象类作为参数的纯虚方法

    我有以下代码 struct A f 0 struct Aa A f struct B void foo A 0 struct Bb B void foo Aa 现在我无法创建Bb类实例 因为我没有覆盖foo从课堂上B与所需的参数 我怎样才能
  • 是否可以使 setSystemUiVisibility() 影响整个系统,而不仅仅是您的应用程序?

    我希望制作一个应用程序 使用来自 Galaxy Nexus 的代码将软按钮变暗为点这个答案 https stackoverflow com a 8602997 183929 为了完整起见 这是代码 getWindow getDecorVie
  • 计算所选文本的位置 javascript/JQuery?

    如何通过计算紧随正文标记之后的偏移量来检索所选文本的位置 例如考虑以下 html div hi div div dude div 在从 i 在 hi 中 到 du 在 dude 中 中选择时 我需要将 2 作为起始位置 将 4 作为结束位置
  • Java 10 中“var”的优点/缺点[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 AFAIK var不是关键字Java It is 保留类型名称 我想知道在什么情况下我们应该使用 避免它 它的使用有什么原则吗 import j