我们的程序通过JNA使用本机库,其中一些调用传递了com.sun.jna.Pointer
和com.sun.jna.ptr.PointerByReference
。
使用声纳分析此类代码时,会发出“主要代码气味” squid:S1191 - Classes from "sun.*" packages should not be used
。
Sonar的文档特别提到import com.sun.jna.Native;
是不合规的代码,但没有提供任何替代方法。
谷歌搜索squid:1191
后,似乎许多用户认为此规则过于严格(更不用说您不能为导入添加注释以抑制警告了。)
据我了解,该规则起源于Java的FAQ,该规则也没有提供JNA的任何其他API。
我应该忽略该问题(或找到解决该问题的方法),还是我们在这里确实做错了什么?