为什么我不能在接口中声明静态方法?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (146)

为什么静态方法不能在接口中声明呢?

public interface ITest {
    public static String test();
}

上面的代码给了我以下错误(至少在Eclipse中):“Illegal modifier for the interface method ITest.test(); only public & abstract are permitted”。

提问于
用户回答回答于

不能在接口中使用静态方法的原因在于Java解析静态引用的方式。在尝试执行静态方法时,Java不会费心寻找类的实例。这是因为静态方法不依赖于实例,因此可以直接从类文件执行。考虑到接口中的所有方法都是抽象的,VM必须查找接口的特定实现,以便找到静态方法后面的代码,以便能够执行它。这与静态方法解析的工作原理相矛盾,并会给语言带来不一致。

热门问答

扩展能力之云调用,小程序端出错:[tcb-js-sdk]参数错误:非法的应用标识?

software微软、谷歌、腾讯、阿里、百度……
推荐
您好,appSign必须是小程序的appid,appSecret的两个字段必须是在云开发控制台-安全来源里配置过的。 image.png ... 展开详请

serverless db 如何管理?

Richel码农
推荐
1.支持pg_dump,psql工具进行数据导入和导出。 2.本地CLI,可以使用postgresql的客户端psql,也可以使用dbeavr,navicate,pgadmin等工具访问。 3.支持操作DB ,要自己写逻辑 ... 展开详请

请问bugly上报的服务器是在哪?如果要发行海外版本,能把上报服务器调成海外吗?

安卓APP使用免费版加固后,在Android11系统上运行闪退,是什么原因?

hello,目前已经适配了Android R Beta1,预计这周内上线移动应用安全在线版,请留意日志更新

对象存储, 版本控制,没有提供对象的历史版本列表的查询API吗?

游戏联机对战引擎实时服务器怎么请求外部接口?

您好,实时服务器支持http访问内网,需要在实时服务器内下载request模块,同时把node_modules文件夹压缩打包上传发布实时服务器。

所属标签

扫码关注云+社区

领取腾讯云代金券