未经检查的泛型问题

smcm062

我有一个在编译时会引发以下警告的方法:

warning: [unchecked] unchecked generic array creation for varargs parameter of     
type TableColumn<ObservableList,?>[]   tableview.getColumns().addAll(Col);

我知道,如果该方法安全,则可以添加@SafeVarargs批注以禁止显示警告。但是,我不确定我的方法是否安全。另外,当我添加注释时(只是为了查看可能发生的情况),编译器给了我以下错误:

Invalid SafeVarargs annotation. Method InsertSQL(TableView<ObservableList>) 
is not a varargs method.
public TableView InsertSQL(TableView<ObservableList> tableview) 

这是整个有问题的方法:

private TableColumn<ObservableList, String> Col; //declared outside the   
method at the beginning of the class.

@SafeVarargs
public TableView InsertSQL(TableView<ObservableList> tableview) {
    try {
        conn = DriverManager.getConnection(ConnCheck, user, password);
        SysList = FXCollections.observableArrayList();
        st = conn.prepareStatement(SysTableCall);
        SysData = st.executeQuery();

        for (int i = 0; i < SysData.getMetaData().getColumnCount(); i++) {
            final int j = i;
            Col = new TableColumn<>(SysData.getMetaData().getColumnName(i + 1));
            Col.setCellValueFactory(new CallbackImpl(j));
            //Col.setEditable(true);
            if (i == 0) {
                Col.setPrefWidth(344);
                Col.setText("Record Number");
            }
            if (i == 1) {
                Col.setPrefWidth(344);
                Col.setText("Description");
            }
            tableview.getColumns().addAll(Col); //warning found on this line
        }

        while (SysData.next()) {
            ObservableList<String> row = FXCollections.observableArrayList();
            for (int x = 1; x <= SysData.getMetaData().getColumnCount(); x++) {
                row.add(SysData.getString(x));
            }
            SysList.add(row);
        }
        tableview.setItems(SysList);
        st.execute();
        conn.close();
    } catch (SQLException ex) {
        try {
            PreparedStatement st1 = conn.prepareStatement(SysTableCheck);
            st.setString(1, RecCode);
            ResultSet tempData = st1.executeQuery();
            System.out.println(tempData.toString());
            //Logger.getLogger(SysInfo.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex1) {
            Logger.getLogger(SysInfo.class.getName()).log(Level.SEVERE, null, ex1);
        }
    }
    return tableview;
}

我正在使用Java 8u40和Netbeans 8.0.2。理想情况下,我想处理警告(而不是抑制警告)。谢谢你。

斯蒂芬·加特纳

由于数组和泛型问题,使用泛型实例调用varargs方法会导致这些警告。在您的情况下,只需使用add方法,而不要addAll使用一个参数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

未经检查的泛型或对象装箱?

来自分类Dev

Java泛型和未经检查的演员表

来自分类Dev

Java泛型未经检查的强制转换-通配符界限

来自分类Dev

从Object,泛型类和通配符未经检查的类型转换

来自分类Dev

Java:反射,泛型和未经检查的强制转换

来自分类Dev

通配符泛型和泛型之间的未经检查的强制转换

来自分类Dev

如何避免在策略模式中使用Java和泛型进行未经检查的强制转换

来自分类Dev

如何在休眠泛型中删除未经检查的分配警告

来自分类Dev

如何避免在策略模式中使用Java和泛型进行未经检查的强制转换

来自分类Dev

如何修复不同接口的泛型中的“未经检查的强制转换”

来自分类Dev

如何在 JavaFX 的 XYChart 中删除“为可变参数创建未经检查的泛型数组”?

来自分类Dev

检查泛型的类型

来自分类Dev

检查泛型类

来自分类Dev

了解泛型的问题

来自分类Dev

泛型问题Java

来自分类Dev

Java的泛型问题

来自分类Dev

泛型问题

来自分类Dev

泛型问题Java

来自分类Dev

Java泛型-强制转换为List <SomeType>会发出未经检查的强制转换警告,而不能强制转换为SomeType

来自分类Dev

如何使用不会导致“使用未经检查或不安全的操作”警告的泛型实现Java类

来自分类Dev

我可以使用Java中的自绑定泛型和子类来避免这种未经检查的转换吗?

来自分类Dev

Java-是否可以在没有未经检查的强制转换的情况下混合类型的容器(非泛型类)?

来自分类Dev

Scala检查泛型类型

来自分类Dev

传递泛型类型的问题

来自分类Dev

Swift继承问题泛型

来自分类Dev

构造函数泛型问题

来自分类Dev

Java /泛型/数组问题

来自分类Dev

Java的泛型类型问题

来自分类Dev

传递泛型类型的问题

Related 相关文章

  1. 1

    未经检查的泛型或对象装箱?

  2. 2

    Java泛型和未经检查的演员表

  3. 3

    Java泛型未经检查的强制转换-通配符界限

  4. 4

    从Object,泛型类和通配符未经检查的类型转换

  5. 5

    Java:反射,泛型和未经检查的强制转换

  6. 6

    通配符泛型和泛型之间的未经检查的强制转换

  7. 7

    如何避免在策略模式中使用Java和泛型进行未经检查的强制转换

  8. 8

    如何在休眠泛型中删除未经检查的分配警告

  9. 9

    如何避免在策略模式中使用Java和泛型进行未经检查的强制转换

  10. 10

    如何修复不同接口的泛型中的“未经检查的强制转换”

  11. 11

    如何在 JavaFX 的 XYChart 中删除“为可变参数创建未经检查的泛型数组”?

  12. 12

    检查泛型的类型

  13. 13

    检查泛型类

  14. 14

    了解泛型的问题

  15. 15

    泛型问题Java

  16. 16

    Java的泛型问题

  17. 17

    泛型问题

  18. 18

    泛型问题Java

  19. 19

    Java泛型-强制转换为List <SomeType>会发出未经检查的强制转换警告,而不能强制转换为SomeType

  20. 20

    如何使用不会导致“使用未经检查或不安全的操作”警告的泛型实现Java类

  21. 21

    我可以使用Java中的自绑定泛型和子类来避免这种未经检查的转换吗?

  22. 22

    Java-是否可以在没有未经检查的强制转换的情况下混合类型的容器(非泛型类)?

  23. 23

    Scala检查泛型类型

  24. 24

    传递泛型类型的问题

  25. 25

    Swift继承问题泛型

  26. 26

    构造函数泛型问题

  27. 27

    Java /泛型/数组问题

  28. 28

    Java的泛型类型问题

  29. 29

    传递泛型类型的问题

热门标签

归档