gpt4 book ai didi

java - 在java中处理对象的可空性检查

转载 作者:太空宇宙 更新时间:2023-11-04 09:26:50 24 4
gpt4 key购买 nike

我在一个java类中有下面的方法,我正在创建 session ,现在我的编辑器给我一个错误,由于我创建的 session 的被调用方法的返回值,可能会在com.config.CassandraConfig.session()中取消引用空指针,为了克服这个错误,我必须抛出一个新的非法参数异常,请让我知道它是否是正确的方法

@Bean
@Override
public CassandraSessionFactoryBean session() {
// *** Warning Possible null pointer dereference in com.config.CassandraConfig.session() due to return value of called method ****//
CassandraSessionFactoryBean session = new CassandraSessionFactoryBean();
//*** ****//
session.setCluster(Objects.requireNonNull(cluster().getObject()));

}

我已经按以下方式修复了

   @Bean
@Override
public CassandraSessionFactoryBean session() {
CassandraSessionFactoryBean session = new CassandraSessionFactoryBean();
if (session == null) {
throw new IllegalArgumentException("session is null inside CassandraSessionFactoryBean method");
}
session.setCluster(Objects.requireNonNull(cluster().getObject()));

}

最佳答案

您可以执行以下操作:

    @Override
public CassandraSessionFactoryBean session() throws AnyOwnException {
CassandraSessionFactoryBean session = new CassandraSessionFactoryBean();
if (session != null) {
session.setCluster(Objects.requireNonNull(cluster().getObject()));
//do somthing else
}

throw new AnyOwnException("session is null inside CassandraSessionFactoryBean method");
}

您可以创建自己的异常并抛出它来处理服务中的错误。

还有更简单的方法:

    @Override
public CassandraSessionFactoryBean session() throws Exception {
CassandraSessionFactoryBean session = new CassandraSessionFactoryBean();
session.setCluster(Objects.requireNonNull(cluster().getObject()));
}

关于java - 在java中处理对象的可空性检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57583485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com