将Mapper实例的变量分配为静态有什么好处?

问题描述 投票:0回答:1

假设我有一个映射器接口,如下所示:

public interface SomeMapper {
     SomeMapper INSTANCE = Mappers.getMapper(SomeMapper.class);


     //Some Random Method
     public RandomResponse doSomething();
}

然后我有一个使用映射器的执行器类:

public class someExecutor {
     private final SomeMapper someMapper = SomeMapper.INSTANCE;

     public void someFunction() {
     final randomVariable = someMapper.doSomething();
     }
}

我想了解将 someExecutor 类中的 someMapper 变量设置为静态是否有任何好处。所以例子是:

private static final SomeMapper someMapper = SomeMapper.INSTANCE;

将其分配为静态与将其分配为私有最终相比是否有好处?

java spring mapstruct mapper
1个回答
0
投票

不能在接口中声明实例成员。您在接口中声明的任何字段都是静态的。实现接口的类中的最后一个实例变量引用静态字段。所以无论引用的范围是什么,它仍然指向同一个静态字段。

© www.soinside.com 2019 - 2024. All rights reserved.