当一个类同时继承List和Map时,由于默认优先级错误,导致优先作为了Map序列化,实际应该是按照List序列化,因为在js里面,即使数组也允许添加额外的属性,但是js的序列化还是会优先按照数组来处理,而不是当做普通对象。
另外Nashorn里面定义的js数组,对应了ScriptObjectMirror类,默认该类继承Map接口,有内部函数isArray检测是否是数组,如果java方法的参数是List类型的,那么它有会自动Map为ListAdapter类,这个是真正继承List的类。因此,要么提供一个类型化的方法来添加数组属性,要么就序列化时检测是否是ScriptObjectMirror类特殊化处理,否则脚本化开发的js里, 数组要用原生java类型才行,很不方便。
暂无答案!
目前还没有任何答案,快来回答吧!