Java 从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

更新 我重写了原来的问题,删除了我的解决方案,就像装满鳗鱼的气垫船所建议的那样

我正在尝试从POI访问私有方法

//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从基部投射->派生=向上投射???