Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 幕后发生了什么?_Java_Android_Sqlite - Fatal编程技术网

Java 幕后发生了什么?

Java 幕后发生了什么?,java,android,sqlite,Java,Android,Sqlite,我遇到了以下代码,我需要对此代码进行一些澄清 private void checkColumns(字符串[]投影){ String[]available={TodoTable.COLUMN_CATEGORY, TodoTable.COLUMN\u摘要,TodoTable.COLUMN\u说明, TodoTable.COLUMN_ID}; if(投影!=null){ HashSet requestedColumns=新HashSet( 数组。asList(投影); HashSet availab

我遇到了以下代码,我需要对此代码进行一些澄清

private void checkColumns(字符串[]投影){
String[]available={TodoTable.COLUMN_CATEGORY,
TodoTable.COLUMN\u摘要,TodoTable.COLUMN\u说明,
TodoTable.COLUMN_ID};
if(投影!=null){
HashSet requestedColumns=新HashSet(
数组。asList(投影);
HashSet availableColumns=新HashSet(
Arrays.asList(可用));
//检查请求的所有列是否都可用
如果(!availableColumns.containsAll(requestedColumns)){
抛出新的IllegalArgumentException(
“投影中的未知列”);
}
}
}
我的问题是:因为hashset用于比较值,所以幕后发生了什么?hashset是否在其中存储表的数据?如果是,那么我可以在另一个程序中使用此值并在控制台中打印出来吗

我不确定发生了什么,请解释一下


谢谢

粘贴代码的目的只是检查用户在投影中没有提供表中不存在的列。没有对指定的表进行查询,也没有提取数据。这只是一个有效性检查。

是否有任何方法可以提取数据并将特定列的值存储在数组中?当然有。对SQLite表/ContentProvider进行查询(我不确定您想要做什么),您将得到一个返回的游标。然后,可以使用光标中的结果集执行任何操作。如果你愿意,你甚至可以把整个东西放在一个数组中。
private void checkColumns(String[] projection) {
        String[] available = { TodoTable.COLUMN_CATEGORY,
                TodoTable.COLUMN_SUMMARY, TodoTable.COLUMN_DESCRIPTION,
                TodoTable.COLUMN_ID };
        if (projection != null) {
            HashSet<String> requestedColumns = new HashSet<String>(
                    Arrays.asList(projection));
            HashSet<String> availableColumns = new HashSet<String>(
                    Arrays.asList(available));
            // Check if all columns which are requested are available
            if (!availableColumns.containsAll(requestedColumns)) {
                throw new IllegalArgumentException(
                        "Unknown columns in projection");
            }
        }
    }