小编Rit*_*Das的帖子

Java 8中的比较器接口如何变成@FunctionalInterface

我想澄清一下我的理解@FunctionalInterface。据我所知,我们可以在只有一个抽象方法的接口上添加@FunctionalInterface注释(尽管它可以具有多个默认和静态方法。

在Java 8中,Comparator<T>接口已用@FunctionalInterface标记,因此可以在Lambda表达式中使用,但是当我打开定义时,可以看到那里有2个抽象类

int compare(T o1, T o2);boolean equals(Object obj);

我想了解在功能接口中怎么可能有两个以上的抽象方法,而仍然没有收到任何错误?帮助我清除对此的理解。

java java-8

4
推荐指数
1
解决办法
57
查看次数

如何在没有applicationContext的Spring服务类中请求Prototype bean

我有一个使用原型范围定义的组件。我想在我的服务类中使用该组件。我希望 spring 在每次我调用它时都能为我提供该 Bean 的一个新实例。

组件类别:

@Getter
@Setter
@Component
@Scope("prototype")
public class ProtoTypeBean {
  //.. Field variables
}
Run Code Online (Sandbox Code Playgroud)

服务等级:

@AllArgsConstructor
@Service
public class ServiceClass {
    ProtoTypeBean prototypeBean;
    ArrayList<ProtoTypeBean> prototypeBeans;
    public void demoMethod(ArrayList<String> someArrayList) {

        for(var singleString: someArrayList) {
            prototypeBean.setFieldValue(singleString);

            prototypeBeans.add(prototypeBean);              
        }
        System.out.println(prototypeBeans.toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

通过使用此配置,我在原型Beans ArrayList 中获得了相同的 ProtoTypeBean 实例。问题是,我如何让 Spring 理解每次在 foreach 循环中调用它时都会给我一个 prototypeBean 的新实例?我发现我可以使用 ApplicationContext.getBean() 在 foreach 循环中获取 Bean 的新实例,但我也听说这是一个不好的做法。请帮助我进行最佳实践。

java oop spring dependency-injection spring-boot

3
推荐指数
1
解决办法
4259
查看次数

标签 统计

java ×2

dependency-injection ×1

java-8 ×1

oop ×1

spring ×1

spring-boot ×1