Java 从POI类访问私有方法
更新 我重写了原来的问题,删除了我的解决方案,就像装满鳗鱼的气垫船所建议的那样 我正在尝试从POI访问私有方法Java 从POI类访问私有方法,java,apache-poi,Java,Apache Poi,更新 我重写了原来的问题,删除了我的解决方案,就像装满鳗鱼的气垫船所建议的那样 我正在尝试从POI访问私有方法 //Class Available from library (cannot modify), below is a small part of class public class XSSFSheet extends POIXMLDocumentPart implements Sheet { private XSSFDataValidationHelper dataValidati
//Class Available from library (cannot modify), below is a small part of class
public class XSSFSheet extends POIXMLDocumentPart implements Sheet {
private XSSFDataValidationHelper dataValidationHelper;
@Override
public int getDefaultColumnWidth() { ----------------(1)
CTSheetFormatPr pr = worksheet.getSheetFormatPr();
return pr == null ? 8 : (int)pr.getBaseColWidth();
}
}
我需要一个方法,将给我像下面,而不是上面的东西
@Override
public int getDefaultColumnWidth() {
CTSheetFormatPr pr = worksheet.getSheetFormatPr();
return (int)pr.getDefaultColWidth();
}
来自其他类的getDefaultColWidth()的实现是-
public double getDefaultColWidth() {
synchronized(this.monitor()) {
this.check_orphaned();
SimpleValue var2 = null;
var2 = (SimpleValue)this.get_store().find_attribute_user(DEFAULTCOLWIDTH$2);
return var2 == null?0.0D:var2.getDoubleValue();
}
}
出于实际原因,请继续阅读:
实际的问题是,我试图获取Google电子表格在JAVA中导出的xlsx文件的默认列宽。问题是POI返回8个单位,这是默认值。而它应返回的值应为14.43(近似值)。我可以使用我想要使用的方法来获得该值。从类扩展的东西无法访问扩展类的私有字段或函数。如果您想从Base外部访问getSolution(),您需要将其公开。这个问题可能是伪装的吗?你可能想考虑告诉我们你想解决的总体问题,而不是你现在如何解决它。最好显示真实代码。如果有人调用
Base
类的getSomething()
或getSolution()
函数,系统将挂起。假设methodReturningB()
返回类型为Base
的值,则需要执行动态方法绑定。向下投射不是这样的。@Tezra从基部投射->派生=向上投射???