Snakeyaml的一个bug
反序列化一个Properties类型,会直接当做Map处理。
就是说把
num: 1
变成一个String的key(num)和一个Integer的value(1),然后put到Properties对象,而不是使用setProperty方法。
java.util.Properties虽然是个继承HashTable的Map,但是一般我们都用setProperty和getProperty,这两个方法写死了只处理string。特别是getProprety里判断了一下如果value不是string就直接返回null。
所以,snakeyaml反序列化出来的Properties对象,要么只能用get/put访问。
这也是一个yaml跟Properties的差别吧。
导致ShardingSphere的一个bug
- https://github.com/apache/shardingsphere/issues/8204