gpt4 book ai didi

java - StaticWriter 和 Writer 类之间的冲突

转载 作者:搜寻专家 更新时间:2023-11-01 03:39:02 25 4
gpt4 key购买 nike

在我们最近从 WSED 5.2 迁移到 RAD 7.5 时,我们的代码中出现了一个破坏应用程序的错误。

RAD 7.5 如此标记它,全部在类头的声明中(public class FoStringWriter extends StringWriter implements FoWriter {)

- Exception IOException in throws clause of Writer.append(CharSequence, int, int) is not compatable with StringWriter.append(CharSequence, int, int)
- Exception IOException in throws clause of Writer.append(char) is not compatable with StringWriter.append(char)
- Exception IOException in throws clause of Writer.append(CharSequence) is not compatable with StringWriter.append(CharSequence)

我在网上找到的每一篇文献都指出这是 Eclipse 中的一个“错误”,但我的开发人员应该已经安装了最新版本的 Eclipse 软件。所以我不知道如何处理这个错误。 IBM 是否提供了我尚未更新的修复程序?或者是否有可以纠正此错误的代码修复?

public class FoStringWriter extends StringWriter implements FoWriter {

public void filteredWrite(String str) throws IOException {
FoStringWriter.filteredWrite(str,this);
}

public static void filteredWrite(String str, StringWriter writer) throws IOException {
if (str == null) str = "";
TagUtils tagUtils = TagUtils.getInstance();
str = tagUtils.filter(str);
HashMap dictionary = new HashMap();
dictionary.put("&#","&#");
str = GeneralUtils.translate(str,dictionary);
writer.write(str);
}

编者注:

此运行的过程会为我们的应用程序创建 PDF 文档。在 WSED 5.5 中,它可以工作,有一些错误,但没有什么能阻止 PDF 的写入。

最佳答案

打我的脑门,因为这是另一个看似完全显而易见的答案解决的“错误”。

只需添加列出的抛出“错误”的方法,我就可以消除调用此类时抛出的错误。

直接从 StringWriter 复制它们确实有效,无需以任何方式编辑它们。

public StringWriter append(char c) {
write(c);
return this;
}

public StringWriter append(CharSequence csq) {
if (csq == null)
write("null");
else
write(csq.toString());
return this;
}

public StringWriter append(CharSequence csq, int start, int end) {
CharSequence cs = (csq == null ? "null" : csq);
write(cs.subSequence(start, end).toString());
return this;
}

我很高兴这能奏效,但同时也很沮丧,因为它是一个非常简单的修复程序,花了将近整整一周的时间才弄清楚。

我想这个错误背后的原因可能是实现中的冲突。 FoStringWriter 扩展了 StringWriter,但它本身扩展了 Writer,并且这两个类都有自己的“追加”方法,可以相互覆盖。通过显式创建它们,可以解决此错误。

关于java - StaticWriter 和 Writer 类之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19983779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com