Apex,SOQL,将数据库中的结果添加到列表中,错误

Apex, SOQL, add results from database to the List, error

我想将数据库中的结果添加到列表中。但是有一个bug。

String str = '\'AOC\',\'BPD\',\'CRE\'';
List<String> lstString = str.split(',');
List<Shop_Product__c> productList = new List<Shop_Product__c>();
Integer i = 0;
for (String record: lstString) {
    System.debug('record[' + i + ']: ' + record);
    if ((record != null) && (productList != null)) {
      productList.add([SELECT Id, Brand__c 
                       FROM Shop_Product__c 
                       WHERE Brand__c = :record
                       LIMIT 10]);
      
      System.debug('productList[' + i + ']: ' + productList);
      System.debug('Here in for ----------------------------------------');
    }
    ++i;
}

错误是 System.QueryException:List 没有要分配给 SObject 的行。 Here是不是说明了,但是我不明白我应该怎么做。

List 方法 add() 采用单个 sObject。这就是为什么你得到 QueryException,就像在你 link 的例子中一样。

可以使用addAll()方法创建List<sObject>上下文,避免没有响应记录时出现异常