使用原生Ada编译器调用Java API
在软件开发中,有时需要结合不同的编程语言来发挥各自的优势。Ada和Java就是这样两种语言,它们各有特点,而AdaJNI提供了一种将它们结合使用的有效方式。下面将详细介绍AdaJNI的相关知识,包括抽象类、接口、数组等的处理,以及它的应用和一个小示例。
1. 抽象类处理
抽象类在AdaJNI中的处理方式与普通类类似,但有一些区别。抽象类会被映射到Ada包和带标签的类型,抽象类中定义的方法(包括抽象方法)会被映射到普通的Ada子程序。不过,与普通类的绑定不同的是,抽象类的绑定不包含任何构造函数,这就防止了Ada程序员创建抽象类的实例。
例如,Java允许抽象类作为方法返回对象的数据类型,如 java.awt.Component.getGraphics() 方法返回一个 java.awt.Graphics 抽象类的对象。当Ada程序员调用该方法的Ada绑定时,会返回一个 java.awt.Graphics 的未知类扩展对象。AdaJNI允许Ada程序员使用Java2AdaJNI为 java.awt.Graphics 抽象类生成的Ada绑定来操作这些对象。对映射到 java.awt.Graphics 中抽象方法的Ada子程序的调用会被传递到Java虚拟机,以分派到相应的具体方法。
2. Java接口处理
Java接口由一组抽象方法规范组成,由一个或多个声称实现该接口的类来实现。Java2AdaJNI处理接口时,会生成一个普通的Ada包规范,不包含任何构造
超级会员免费看
订阅专栏 解锁全文
32

被折叠的 条评论
为什么被折叠?



