我自己是一名C ++ / C#程序员我现在不幸的是不得不在不久前由其他人写的更大的Actionscript / Air项目中实施一些更改。
使用" FlashDevelop"编译项目(或多或少)。作为IDE。但是出于其他原因,我们想要使用" IntelliJ"现在
事情是IntelliJ显然做了一些检查,现在吐出了几十个错误,如:
Error:(319, 0) [SomeSourceFile]: Implicit coercion of a value of type ByteArray to an unrelated type String.
在这样的代码上:
public function send(ba:ByteArray):void{
mdm.COMPort.send(ba)
}
使用" mdm.COMPort.send"函数期待一个字符串。
是的,那就是类型不匹配错误!我完全同意!
但由于某种原因,它适用于旧项目。显然,Actionscript能够进行一些隐式类型转换/转换,并且没有检查类型安全性。
现在的问题:我该如何纠正? Actioncript在这种情况下应用的隐含行为是什么?
mdm.COMPort.send(ba.toString())
mdm.COMPort.send(string(ba))
mdm.COMPort.send(ba as string)
mdm.COMPort.send(ba.ReadUTFBytes(ba.length))
或其他我不知道的?
我现在在许多类型的地方确实遇到了这个问题(不仅是"字节数组"和"字符串"),所以一般的答案将不胜感激。