Java 8 接口(interface)

标签 java

我有:

public class CustomSheet extends XSSFSheet implements customSheetsI

在XSSFSheet中有一个方法,

public XSSFWorkbook getWorkbook() {
    return (XSSFWorkbook)this.getParent();
}

在我的 customSheet 类中,我想覆盖 getWorkbook 方法(或添加新的 getCustomWorkbook),将工作簿转换为 customWorkbook。我可以在接口(interface)的每个实例中执行此操作,但我想利用 Java 8 并直接在接口(interface)中编写方法。

像这样

    public interface customSheetsI<T extends XSSFSheet>
    {
        default LogChunkWorkbook getLogWorkbook() {
            return (LogChunkWorkbook)getWorkbook();
        }
..

使用父类(super class) XSSFSheet 中的 getWorkbook。但它不像我写的那样有效。它不知道 getWorkbook。我该怎么做?

最佳答案

您也可以在您的接口(interface)中添加getWorkbook()方法,并在CustomSheet中实现。您将能够像这样使用它:

public interface customSheetsI {
    default String getLogWorkbook() {
        return (String) getWorkbook();
    }

    YourReturnType getWorkbook();
}

关于Java 8 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49512816/

相关文章:

java - 加载骰子(加权随机)

java - 字符串不变性 - (连接并分配新值)

java - 递归 toString 方法

java - 将 avro 集成到 sbt 工作流程中

java - Swagger-ui 不显示任何 api 详细信息

java强制基于实例变量的方法参数对象类型

java - 重复的条目:gms/auth/api/signin/internal/zzf.class

java - Elasticsearch 无法更改_parent字段的type选项:[null]-> [metadata]

java - 输入字符串压缩为字符串

java - 如何在 Java 8 中自动本地化日期格式