如何处理这个错误 'The getter 'isNotEmpty' was called on null.接收者:空尝试调用:isNotEmpty'

时间:2021-05-16 07:35:07

标签: flutter dart

我正在编写代码将文件上传到 firebase。我遇到了这个错误。我在这里做错了什么?

from itertools import cycle

def intersection(data):
    result = []    
    maxval = float("-inf")
    consecutive = 0
    try:
        for sublist in cycle(iter(sublist) for sublist in data):

            value = next(sublist)
            while value < maxval:
                value = next(sublist)

            if value > maxval:
                maxval = value
                consecutive = 0
                continue

            consecutive += 1
            if consecutive >= len(data)-1:
                result.append(maxval)
                consecutive = 0

    except StopIteration:
        return result

print(intersection([[1,3,5,7], [1,1,3,5,7], [1,4,7,9]]))

我在这里粘贴几行代码供您参考。如果您需要更多信息,请告诉我。谢谢。

[1, 7]

1 个答案:

答案 0 :(得分:0)

您正在呼叫 p.basename(sampleFile?.path)

但是当 sampleFilenull 时,sampleFile?.path 的结果为 null。

因此在 basename 函数中,必须对字符串进行 .isNotEmpty 检查,但您将其作为 null 传递;

如果 basename 函数是您的,则重构代码以处理 null 值。

否则,如果 basename 不是您的函数,则像这样使用它。

String? fileName = null;
if (sampleFile?.path != null) fileName = p.basename(sampleFile?.path);

然后,在其余代码中相应地更改 fileName 的用法。