gpt4 book ai didi

java - .NET using-Statement 和 Java try-with-resources 之间的区别

转载 作者:搜寻专家 更新时间:2023-11-01 01:25:54 24 4
gpt4 key购买 nike

我在学校学过 C#,现在我开始学习 Java。

在 Java 中有“try with ressources”,它会在不再使用时关闭/处理一些东西(比如 Scanner)。

等效的 C# 是 using-Statement,基本上做同样的事情。

它们真的完全相同,还是有任何差异(比如它们在后台所做的事情)?

最佳答案

不,它们不完全相同。

  • try-with-resources 语句可以声明多个不同类型的变量; using 语句可以声明多个变量,但它们必须是同一类型
  • using 语句没有声明任何变量; using (foo) 很好 - 而 try-with-resources 语句
  • using 语句中声明的变量仍然是可赋值的,尽管它仍然是释放的初始值,而不是 block 末尾的值;在 try-with-resources 语句中声明的变量不能在 block 内赋值
  • try-with-resources 语句可以有 catchfinally block ,而你需要有一个单独的 C# 中的 try/catchtry/catch/finally block
  • 如果using语句体抛出异常,然后Dispose方法抛出异常,则只有后一个异常可用;在 try-with-resources 中,关闭异常被“抑制”(因此语句结果是 try block 中的异常)但关闭异常仍然可以使用检索Throwable.getSuppressed

关于java - .NET using-Statement 和 Java try-with-resources 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28294028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com