假设我有一个映射器接口,如下所示:
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;
将其分配为静态与将其分配为私有最终相比是否有好处?
不能在接口中声明实例成员。您在接口中声明的任何字段都是静态的。实现接口的类中的最后一个实例变量引用静态字段。所以无论引用的范围是什么,它仍然指向同一个静态字段。