使用try-with-resources时,没有引用的资源是否也会自动关闭

时间:2016-02-09 21:49:48

标签: java try-with-resources

示例:

try(ResultSet rs = DriverManager.getConnection(url, us, pw).createStatement().executeQuery(sql)) {

    //mycode
}

我没有对ConnectionStatement的任何提及,它们是否会被关闭,如果它们执行了什么命令?

感谢

1 个答案:

答案 0 :(得分:3)

根据language specification,它只会关闭ResultSet对象。这是因为try-with-resources语句使用资源规范,其中使用变量声明资源:

  

TryWithResourcesStatement:

     
    

try ResourceSpecification Block [Catches] [Finally]

  
     

ResourceSpecification:

     
    

( ResourceList [;] )

  
     

ResourceList:

     
    

Resource {; Resource}

  
     

<强> Resource:

     
    

<强> {VariableModifier} UnannType VariableDeclaratorId = Expression