我一直在我的项目中广泛使用 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 中的错误(我可能会尝试修复),或者是否由于某种原因我的代码库行为不端?