java - 在接口(interface)的静态方法中调用默认方法

标签 java java-8

我需要在接口(interface)的静态方法中调用默认方法(同一接口(interface)中的两个方法 - 一个是默认的,另一个是静态的)。这可能吗?如果是这样,我怎样才能实现这一目标?

查看代码部分以更好地理解我的问题:

interface A{
default void callee(){
        //do something here
    }

    static void caller(){
        //call callee() method anyhow
    }
}

最佳答案

您需要实例来调用非静态方法。

static void caller() {
    new A(){}.callee();
}

最好避免静态到非静态的调用。我想你可以将 callee 的一部分提取到静态方法。

关于java - 在接口(interface)的静态方法中调用默认方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39200671/

相关文章:

java - 用其后面的字符替换元音

java - 交换排序算法查询

java - 将列表映射到 map 中的 DTO - java

java - 如何在不冒 StackOverflowError 风险的情况下使用 CompletableFuture?

java - Java 8 中的 ClassFormatError?

java - 拆分 java.util.stream.Stream

Java如何按区域设置字段对列表进行排序?

java - 对象的数组列表只是创建对同一对象java的引用

java - Class<T> 用于 Java 中的泛型?

java - 如何获取java中用于atlassian jira的对象的值