gpt4 book ai didi

java - 接口(interface)中的变量/构造函数

转载 作者:行者123 更新时间:2023-11-30 02:21:29 25 4
gpt4 key购买 nike

我正在浏览 picasso source code并在 第 80-94 行 中遇到了这个 block :

    public interface RequestTransformer {
/**
* Transform a request before it is submitted to be processed.
*
* @return The original request or a new request to replace it. Must not be null.
*/
Request transformRequest(Request request);

/** A {@link RequestTransformer} which returns the original request. */
RequestTransformer IDENTITY = new RequestTransformer() {
@Override public Request transformRequest(Request request) {
return request;
}
};
}

根据我的理解,它有点像在接口(interface)中使用静态构造函数声明一个变量。有人可以解释该代码应该做什么吗?我通读了一篇关于接口(interface)中的构造函数的类似帖子 ( Constructor in an Interface? ),但我仍然不明白为什么这种情况不适用于那里。

谢谢

最佳答案

这实际上不是一个变量。这在匿名实现中是不变的。在接口(interface)内,它被编译为:

public interface RequestTransformer {
Request transformRequest(Request request);

public static final RequestTransformer IDENTITY = new RequestTransformer() {
@Override
public Request transformRequest(Request request) {
return request;
}
};
}

这是一种不好的做法(在接口(interface)内实现):)

关于java - 接口(interface)中的变量/构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28475938/

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