Java 函数接口实现的Ref返回null

Java 函数接口实现的Ref返回null,java,spring-boot,Java,Spring Boot,下面是虚拟代码,它是我原来问题的副本。我试图从另一个服务调用谓词,但返回为null @Service public class CommonService { public Predicate<Student> isRegistered= student -> { boolean isRegistered = // call another service to check return isRegistered; }; }

下面是虚拟代码,它是我原来问题的副本。我试图从另一个服务调用谓词,但返回为null

@Service
public class CommonService {
    public Predicate<Student> isRegistered= student -> {
        boolean isRegistered = // call another service to check

        return isRegistered;
    };
}

@Service
public class StudentService {
    @Autowired
    CommonService commonService;

    public void processStudentData(Student student){
        if(commonService.isRegistered.test(student){
            // do processing
        }
    }
}
@服务
公共类公共服务{
公共谓词isRegistered=学生->{
boolean isRegistered=//调用另一个服务进行检查
已登记退货;
};
}
@服务
公共班级学生服务{
@自动连线
公共服务公共服务;
public void processStudentData(学生){
if(commonService.isRegistered.test)(学生){
//处理
}
}
}

commonService.isRegistered返回为null

您也应该将
commonService
a
@组件
,并将
isRegistered
逻辑重构为返回
布尔值
而不是
谓词的deDefected服务方法。是否可以用getter替换对字段的直接访问?尝试注释
Student使用
@Component
@Service
进行服务
。同时使用日志更新您的问题。@Glains我已使用服务注释更新了代码。它已经存在于我的原始代码中,我忘了在此处添加。专用方法将起作用,但我需要一个谓词,因为在原始代码中链接是required@talex盖特威斯康星州我可以工作,但我需要一个谓词,因为在原始代码中需要链接
@Service
public class CommonService {
    public Predicate<Student> isRegistered= student -> {
        boolean isRegistered = // call another service to check

        return isRegistered;
    };
}

@Service
public class StudentService {
    @Autowired
    CommonService commonService;

    public void processStudentData(Student student){
        if(commonService.isRegistered.test(student){
            // do processing
        }
    }
}