当前位置: 首页 > 知识库问答 >
问题:

无法覆盖Lombok getter

杨研
2023-03-14

注意:这里有几个人引用的解决方案不适用于我的问题。。。

我有一个java。sql。要在getter中格式化为字符串的时间戳字段。我在课程开始时使用Lombok@Data。但是,当我用自己的getter覆盖Lombok的getter(格式化时间戳)时,字段总是空的。我在文档中没有看到任何东西来解释这种行为。

这段代码将结算日期作为时间戳提供给我:

@Data
public class MyObject {
  public Timestamp settlementDate;
}

这个代码块给了我一个NPE,因为setementDate是null。嗯,我刚刚想到...会不会是因为getter的返回类型与成员类型不同?

@Data
public class MyObject {
  public Timestamp settlementDate;

  String getSettlementDate() {
    return new SimpleDateFormat("yyyy-MM-dd").format(tradeDate);
  }
}

共有1个答案

杨利
2023-03-14

您的代码肯定存在一些与Lombok无关的问题。以下一些观点成立:

  • 在访问之前未设置字段
  • 确实如此,但稍后会被null覆盖
  • 您正在另一个线程上访问它,而没有可见性保证

按照注释中的建议,您应该创建一个SSCCE。我通常会这样做,大多数时候,我会取消我的问题,因为它会引导我找到解决方案。

请注意,编写getter返回setter无法使用的类型是一个非常糟糕的主意。

 类似资料:
  • 问题内容: 我尝试按照食谱中的描述自定义行为。 在ipython中: 没有被调用。看来在我的python 2.5安装中不起作用。 问题答案: 使用的是ipython,而不是普通的Python交互式shell,它本身捕获所有异常,并且不使用sys.excepthook。以代替just的方式运行它,它将在未捕获的异常时自动调用pdb,就像您尝试使用excepthook一样。

  • 为什么我不能重写类中的doInBackground方法? 错误:类AttemptLogin必须声明为抽象或实现抽象方法'doInBackground(参数…)在“异步任务”中 如果我将doInBackground的参数更改为(Object[]),它就会工作。为什么我不能传递字符串值?

  • 下面是我的pom.xml 这是我的主课 SecurityConfig.Class

  • 问题内容: 因此,我有一个自定义类,该类具有与int一起使用的功能。然而,在我的程序(库),它越来越被称为周围的其他方法,即,在那里是我的班。有什么办法可以让它使用我的功能吗? 问题答案: 只需将以下内容添加到类定义中,就可以了:

  • 在这个特定的示例中,我扩展了

  • 问题内容: 不确定我在做什么错,这是我的check.js 这是我的insert.js 每当我尝试运行check.js时,都会出现此错误 编译后无法覆盖“用户”模型 。 我知道此错误是由于架构不匹配引起的,但我看不到发生了什么?我对mongoose和nodeJS很陌生。 这是我从MongoDB的客户端界面中获得的信息: 问题答案: 发生错误是因为您已经定义了一个架构,然后又在定义该架构。通常,您应该