【问题标题】:C# OfType in Java AndroidJava Android 中的 C# OfType
【发布时间】:2018-02-10 00:22:36
【问题描述】:

我正在使用 iText 5G 编写应用程序,我看到一段代码不允许在页面末尾拆分表格,但该代码是用 C# 编写的,我已将几乎所有代码转换为 Java 但我被困在一行中,我不知道 Java 中的等价物。

C# 代码:

public override IList<iTextSharp.text.IElement> End(iTextSharp.tool.xml.IWorkerContext ctx, iTextSharp.tool.xml.Tag tag, IList<iTextSharp.text.IElement> currentContent)
{
    string keeprowstogetherattr = "keeprowstogether";
    var retval = base.End(ctx, tag, currentContent);
    if (tag.Attributes.ContainsKey(keeprowstogetherattr) && tag.Attributes[keeprowstogetherattr] == "true")
    {
        foreach (PdfPTable table in retval.OfType<PdfPTable>())
        {
            table.KeepRowsTogether(0);
        }
    }
    return retval;
}

我现在的Java代码:

public List<Element> End(WorkerContext ctx, Tag tag, List<Element> currentContent)
{
    {
        String keeprowstogetherattr = "keeprowstogether";
        List<Element> retval = super.end(ctx, tag, currentContent);
        if (tag.getAttributes().containsKey(keeprowstogetherattr) && tag.getAttributes().get(keeprowstogetherattr) == "true");
        {
            for (PdfPTable table : retval.OfType<PdfPTable>())
            {
                table.keepRowsTogether(0);
            }
        }
        return retval;
    }
}

我卡住的那条线:

PdfPTable table : retval.OfType<PdfPTable>()

我不知道 Java 中 C# 的 OfType 的等价物。 谢谢。

编辑:我的min API 是 19,所以 stream() 不起作用。

【问题讨论】:

  • @poke:这不是重复的,因为 OP 不能使用 Streams API。

标签: java c# android itext


【解决方案1】:

如果您不能使用流过滤器,最简单的方法可能是在 for 循环内进行 instanceof 检查:

for(Element e: retval) {
    if(e instanceof PdfPTable) {
        ((PdfPTable) e).keepRowsTogether(0);
    }
}

作为风格说明,您应该以小写字母 (end) 开头命名您的方法,并且在 C# 和 Java 中,keeprowstogetherattr 应该是一个名为 KEEP_ROWS_TOGETHER_ATTR(或者更好的是 ATTR_KEEP_ROWS_TOGETHER)的常量字段.

【讨论】:

  • 你想把keepRowsTogether(0)改成setKeepRowsTogether(false)
  • @BrunoLowagie 也许吧。我完全不知道所涉及的 API 是什么。
  • 你的问题充分地回答了这个问题,这就是为什么我给你一个赞成票。我只是想发表评论,因为有人可能会复制/粘贴 sn-p,然后抱怨“它不起作用”:D
  • @BrunoLowagie iText G5 - XMLWorker
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多