【Java随笔】 Java中的方法原型(method prototype)
首先声明,Java中不存在“方法原型”的官方正式定义
近日在Android官方有关dex文件格式的文档中发现有method prototype的出现,以前只在c中见过function prototype,那么method prototype是什么呢?
根据Stack Overflow上的相关问题,总结一下:
- Java规范中不存在“方法原型”这个词
- 还是有人会使用“方法原型”这个词的,尤其是C、C++开发者
- 以C为例,为了在一个函数实现之前使用他,可以在使用前先写一个“函数原型”,使用之后再实现这个函数
- Java中的“方法原型”如果没理解错的话一般指 接口中定义的方法、抽象方法
- 原型需要从字面意义去理解:定义了框架+未完成
在Android官方那篇文章中,dex文件中的method prototype有着不同的含义
- Dex中的method prototype指的是方法的“框架”,剥离所有的额外信息,比如访问权限、方法名、参数名
- 举例:public int getInt(String s)对应的method prototype是:int (String)
- public int getInt(String s)与public int getInt2(String s)的method prototype是一样的
总而言之,没有绝对的事情,凡是都要考虑上下文
如果错误欢迎批评指正
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。