检查 blob 是否存在时出现空指针异常
null pointer exception when I check if a blob exists
我有一个 com.google.cloud.storage.Blob 对象。我已经能够在我的 java 代码中使用这个对象很好地下载和上传,但我想在开始 process.In 之前检查是否存在某些东西,简而言之,这是我的代码给我问题的一部分.
import com.google.cloud.storage.Blob;
import com.google.cloud.storage.BlobId;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
public class Function implements BackgroundFunction<GcsEvent> {
public void accept(GcsEvent event, Context context) {
String bucketname = "my_bucket";
String blob_path = "path/to/my/object.jpg";
Storage storage = StorageOptions.newBuilder().setProjectId("my_project_id").build().getService();
Blob b = storage.get(BlobId.of(bucketname, blob_path));
// this is where the null pointer exception occurs
boolean exists = b.exists();
if (exists) {
//do something
}
}
}
Eclipse 似乎没有在 IDE 中捕获它。这些例子似乎也遵循这种布局。有人知道这是怎么回事吗?
我 运行 在 Linux 环境机器上。 (它在云功能中也失败了)。
我正在使用 Java 11 运行时。
我觉得很傻。我发现如果找不到对象,storage.get(BlobId.of(bucketname, blob_path));
将 return null
。而不是使用 b.exists()
,应该使用 if (b != null) { //do stuff }
.
检查它是否为空
我有一个 com.google.cloud.storage.Blob 对象。我已经能够在我的 java 代码中使用这个对象很好地下载和上传,但我想在开始 process.In 之前检查是否存在某些东西,简而言之,这是我的代码给我问题的一部分.
import com.google.cloud.storage.Blob;
import com.google.cloud.storage.BlobId;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
public class Function implements BackgroundFunction<GcsEvent> {
public void accept(GcsEvent event, Context context) {
String bucketname = "my_bucket";
String blob_path = "path/to/my/object.jpg";
Storage storage = StorageOptions.newBuilder().setProjectId("my_project_id").build().getService();
Blob b = storage.get(BlobId.of(bucketname, blob_path));
// this is where the null pointer exception occurs
boolean exists = b.exists();
if (exists) {
//do something
}
}
}
Eclipse 似乎没有在 IDE 中捕获它。这些例子似乎也遵循这种布局。有人知道这是怎么回事吗?
我 运行 在 Linux 环境机器上。 (它在云功能中也失败了)。 我正在使用 Java 11 运行时。
我觉得很傻。我发现如果找不到对象,storage.get(BlobId.of(bucketname, blob_path));
将 return null
。而不是使用 b.exists()
,应该使用 if (b != null) { //do stuff }
.