【发布时间】:2014-04-05 21:43:08
【问题描述】:
这里是sn-p的代码:
ByteBuffer buf = ByteBuffer.allocate(deleteInfo.size);
for(int j = 0; j < deleteInfo.size; j++)
buf.put(j,(byte)'.');
这是上面最后一行的警告:
Unnecessary cast to byte
我同意,但是当我移除演员表时...
buf.put(j, '.');
...这是错误:
incompatible types; possible lossy conversion from char to byte
我意识到char 在 Unicode 中是两个字节,所以这肯定是错误的原因。在char 到byte 的这个演员阵容中,警告没有负面影响,因为我所有的数据都是ASCII。 (我尝试使用 '.' 的实际 ASCII 码;结果相同。)
所以我可以放心地忽略该错误,但我想“合法地”处理这个问题,而不仅仅是关闭或忽略警告机制。
页面上显示的提交问题的主题似乎都没有解决问题。 Google 出现了 getBytes 和 System.getProperty("file.encoding") 返回“UTF-8”,而我没有说我想使用该编码,但我看不到如何将 getBytes("UTF-8")(或其他任何东西)应用到 buf。
如何编写代码以避免出现警告?或者我应该把它写成一个 danged-if-I-do-danged-if-I-don't Netbeans 怪癖?
【问题讨论】:
标签: java netbeans casting bytebuffer