[英]C# OfType in Java Android
我正在使用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()不起作用。
如果您不能使用流过滤器,则最简单的方法可能是在for循环内执行instanceof
检查:
for(Element e: retval) {
if(e instanceof PdfPTable) {
((PdfPTable) e).keepRowsTogether(0);
}
}
作为风格注释,您应该以小写字母( end
)开头来命名方法,而keeprowstogetherattr
应该是一个在C#和Java中都名为KEEP_ROWS_TOGETHER_ATTR
(或者更好的是ATTR_KEEP_ROWS_TOGETHER
)的常量字段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.