4

我一直在我的项目中广泛使用 Lombok。我喜欢它并希望它得到官方支持,这样维护者就不必使用内部 API 来继续开发,但这是另一个话题。

每隔一段时间,我会在使用时在编译过程中遇到以下问题val(我也广泛使用它,因为它节省了大量的打字):

Cannot use 'val' here because initializer expression does not have a representable type: Type cannot be resolved

上次这种情况发生在两个地方:

  • 作为返回值的函数的返回值Map<UUID, List<SomeObject>>
  • 作为返回值的函数的返回值List<UUID>

我以前使用val过后一种类型,以及比前一种更复杂的对象。但是,莫名其妙地val在这里不起作用。最终的解决方案就是val在这些地方省略(尽管它在整个课程的其余部分中被广泛使用,没有任何问题)。

所以,问题是:我如何在 Lombok 中调试val(并且可能var) ?如何调试生成类型所经历的事情,以确定这是否是 Lombok 中的错误(我可能会尝试修复),或者是否由于某种原因我的代码库行为不端?

4

1 回答 1

0

val注释处理可能存在一些错误。有问题。此外,
还有另一个错误val没有关于更改变量值的警告val。它仅在运行时给出错误。小心,很容易出错。

于 2020-02-03T12:56:53.803 回答