Java类CharToByteConverter的类型弃用(Java Class chartobyt

2019-06-25 08:23发布

我工作的蛋白质的DNA比对项目“readseq”。 其“flybase”包包含具有“CharToByteConverter的”类不编译并给出了“类型弃用”消息的Java代码。 (http://iubio.bio.indiana.edu/soft/molbio/readseq/java/)。 这里readseq源都可以找到我需要添加一些更多的功能到这个应用程序,不知道如何解决它朝我的目标前进。 我是那种在java中新国际展览局。 如果可能的话plz帮助。 Readseq是它的图形用户界面是容易获得净。 它只是给出转换字符数组为字节。 下面是一些关于它的信息:(docjar.com/docs/api/sun/io/CharToByteConverter.html)。 我不知道该怎么办这个被弃用。 它是用来作为下一个抽象类:

protected byte[] getBytes(CharToByteConverter ctb) {
        ctb.reset();
        int estLength = ctb.getMaxBytesPerChar() * count;
        byte[] result = new byte[estLength];
        int length;

        try {
            length = ctb.convert(value, offset, offset + count,
                     result, 0, estLength);
            length += ctb.flush(result, ctb.nextByteIndex(), estLength);
        } catch (CharConversionException e) {
            length = ctb.nextByteIndex();
        }

        if (length < estLength) {
            // A short format was used:  Trim the byte array.
            byte[] trimResult = new byte[length];
            System.arraycopy(result, 0, trimResult, 0, length);
            return trimResult;
        }
        else {
            return result;
        }
}

Answer 1:

javadoc注释说明了一切:

不推荐使用! 替换 - 通过java.nio.charset中

寻找在java.nio.charset包的替换类/方法。

注意,在没有正式记录的API的一部分JDK使用类是摆在首位是一个坏主意。



Answer 2:

这是一个完美的情况下适应参数 ,从迈克尔羽毛书工作有效地与遗留代码 。

无耻的自我插头:这里有一个短prezi我就可以做了 。 它有你需要做的一步一步的细分。

从本质上讲,你将不得不修改你的代码和应用适配器模式的参数。 你要定义自己的接口(我们称之为ByteSource ),使getBytes()把你的接口,而不是( getBytes(ByteSource ctb)然后使在内部有一个适配器CharToByteConverter测试。 要修复损坏的库,你应该做一个具有java.nio.charset代替。



文章来源: Java Class chartobyteconverter Type deprecated