try-with-resources会产生意外的不兼容错误

时间:2018-02-05 13:37:56

标签: java javadb

在以下摘录中执行javac JdbcRowSet.java会让我感到困惑:

//
import javax.sql.*;
import javax.sql.rowset.*;
import java.sql.*;

class JdbcRowSet
{
    public static void main(String ... args){
        StringBuilder sb = new StringBuilder();

        try(JdbcRowSet jrs = RowSetProvider.newFactory().createJdbcRowSet()){
            //CODE
}
//

根据JavaDoc:

public interface ResultSet extends Wrapper, AutoCloseable

public interface RowSet extends ResultSet

public interface JdbcRowSet extends RowSet, Joinable

我收到了以下错误:

dbcRowSet.java:8:error: incompatible types: javax.sql.rowset.JdbcRowSet cannot be converted to JdbcRowSet try(//)
JdbcRowSet.java:8:error: incompatible types: try-with-resources not applicable to variable type
JdbcRowSet cannot be converted to AutoCloseable.

这些错误令人费解。有人可以帮我这个。 谢谢。

1 个答案:

答案 0 :(得分:1)

正如@Kayaman在他的评论中正确指出的那样 - 你宣布自己的JdbcRowSet课程。

更改类的名称或完全限定try中的对象。

try(javax.sql.rowset.JdbcRowSet jrs = RowSetProvider.newFactory().createJdbcRowSet())