【发布时间】:2021-08-16 18:36:49
【问题描述】:
总结
我有一个非常奇怪的情况,即 GString 错误地将变量内插为 null,即使该变量具有非空值集。请参阅下面的屏幕截图。但是,如果我通过变量的实际类而不是接口引用变量,它会正确插值。
PublicBinary是一个接口
interface PublicBinary {
byte[] bytes
String publicKey
Person person
}
AdditionalPhoto 是实现PublicBinary 的具体类
class AdditionalPhoto implements PublicBinary, ToMap, DomainClass {
byte[] bytes
String publicKey
String externalURL
Person person
AdditionalPhotoType additionalPhotoType
...
}
当我输入变量作为其接口时,插值失败,PublicBinary
但是当我将变量键入为它的实际类 AdditionalPhoto 而不是它的接口 PublicBinary 时,插值工作正常。
【问题讨论】:
-
“Groovy GString 在被接口引用时无法插入变量” - 仅供参考...您的代码似乎没有使用
GString插值。photo.publicKey + ".jpg"不涉及插值。