java - 重新定义静态最终模式

标签 java design-patterns open-source

这行代码https://code.google.com/p/google-oauth-java-client/source/browse/google-oauth-client/src/main/java/com/google/api/client/auth/oauth2/BearerToken.java#44包含错误。

INVALID_TOKEN_ERROR 正则表达式是错误的,维护人员不可能很快修复它。

除了 fork 库之外,有没有办法可以在我自己的代码中安全地重新定义它?

对于不想打开链接的人来说,以下是有罪的代码:

public class BearerToken {
  [...]
  static final Pattern INVALID_TOKEN_ERROR = Pattern.compile("\\s*error\\s*=\\s*invalid_token");

最佳答案

不,我不这么认为。反射不会在这里拯救你(参见 http://docs.oracle.com/javase/tutorial/reflect/member/fieldTrouble.html ),无法更改最终字段。例如,如果该字段是一个字符串,该值将内联在编译代码中,因此更改它可能会带来灾难...... 因此,您的选择是向维护者施加压力或 fork 代码。

关于java - 重新定义静态最终模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21412090/

相关文章:

c# - 缩放单例

ios - Kodi初始设置用于Xcode并在系统上运行git代码

Java - 创建功能接口(interface)时出错

java - 使用Gson解析对象数组

java - 我应该如何在 clojure 中表示国际象棋位板?

java - 来自维基百科的单例模式实现

c# - 共享连接字符串

open-source - 基本案例应该是开源的吗?

open-source - 开源 ESB 和 BPM 工具的建议

java http请求所需的字符串参数 'Username'不存在