gpt4 book ai didi

java - java 1.8 接口(interface)中添加静态方法

转载 作者:行者123 更新时间:2023-12-01 12:30:47 25 4
gpt4 key购买 nike

众所周知,在 java 1.8 中,接口(interface)中允许静态方法,我已经看到了一些答案,例如 static methods defined in interface from jdk 1 8 why did they need to do so
但我不满意。
此外,我认为这可能会导致以下问题:

 public interface MyInterface{
public static void myMethod();
}

class MyClass{
MyInterface.myMethod(); // since myMethod is static but a huge error is waiting for us here ?
}

但我仍然认为有办法解决这个问题,因为这是由专业人士添加的,所以任何人都可以解释一下oracle如何解决这个问题以及需要什么添加这个?
提前谢谢您。

<小时/>我没有使用过java 1.8,所以我从来不知道java中的静态方法 需要定义而不仅仅是声明,我一直认为接口(interface)是一个 纯抽象类我认为这就是为什么定义方法的想法对我来说很奇怪。感谢您的帮助 ! .

最佳答案

浅谈“什么是需要添加”静态方法:

引用自http://www.informit.com/articles/article.aspx?p=2191423

Before Java 8 made it possible to declare static methods in interfaces, it was common practice to place these methods in companion utility classes. For example, the java.util.Collections class is a companion to the java.util.Collection interface, and declares static methods that would be more appropriate in the relevant Java Collections Framework interfaces. You no longer need to provide your own companion utility classes. Instead, you can place static methods in the appropriate interfaces, which is a good habit to cultivate.

接口(interface)中的静态方法也适合提供空检查、集合排序等实用方法。重要的是,它通过拒绝实现类覆盖它来提供安全性。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com