`
JerryWang_SAP
  • 浏览: 1030694 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

ABAP和Java里关于DEFAULT(默认)机制的一些语言特性

阅读更多

ABAP 740的新语法:

 

上图的代码相当于:

DATA: ls_data LIKE LINE OF it_data.
READ TABLE it_data INTO ls_data WITH KEY object_ext = cl_crm_prodil_bo_names=>gc_prod_root.
CALL METHOD add_data
   EXPORTING
      ir_child_object = ir_root_object
      is_data = ls_data.

由此可见新语法比较简洁,能少写3行代码。但是这样有一个缺陷,在新语法下如果it_data内表内不存在object_ext的值为cl_crm_prodil_bo_names=>gc_prod_root的记录,就会终止程序执行,抛出异常CX_SY_ITAB_LINE_NOT_FOUND.

 

针对这种情况,ABAP也有对应的解决方案。

下图的第17行会抛出异常,而19行不会,从语义上容易理解:如果内表lt_data里不存在name为Spring2的记录,则返回开发者使用DEFAULT关键字指定的一个结构作为默认值。

 

在Java 8也有类似机制。为了避免臭名昭著的NullPointerException,Java开发人员在使用对象的实例方法之前,需要检查对象实例是否不为null:

if( xx != null ){
    xx.doSomething();
}

在Java 8里,在包java.util里提供了一个新的工具类Optional,看看它的用法。

第11行的filter方法,语义上应该返回一个null,因为我在第10行初始化的字符串常量的长度显然大于6. 但是调用这个filter方法的对象是一个Optional对象,所以最终filter方法最终也返回一个Optional对象,这个对象包裹了一个null。如下图调试器里所示:

 

 

第14行执行的结果会打印出orElse里指定的值,此处orElse的思路和上述介绍的ABAP里的DEFAULT关键字是一致的。

 

这个Optional工具类的实现也很简易,orElse仅仅是一个三元表达式。

 
 

要查看更多ABAP和Java,JavaScript的语言特性比较,请关注Jerry的公众号:汪子熙。

 
 
分享到:
评论

相关推荐

    sap abap调用java生成的webservice手册

    【SAP ABAP调用Java生成的Web Service手册】 在SAP系统中,与外部服务进行交互时,经常需要调用由Java等其他语言编写的Web Service。本手册详细介绍了如何在MyEclipse环境中生成Web Service,并在SAP ABAP环境中...

    SAP ABAP与JAVA之间通过RFC传递数据实例

    通过配置JCo服务器程序以及编写相应的ABAP和JAVA代码,可以实现跨系统的数据传输和处理功能。这对于集成不同技术平台的应用系统来说是非常重要的技术手段之一。此外,本案例还强调了在开发过程中需要注意的一些细节...

    abap objects for java developers.pdf

    ABAP具有一些独特的功能和特性,这些特性使得ABAP成为SAP环境下理想的编程语言之一: - **面向对象编程**:ABAP支持面向对象编程,允许开发者创建可重用的对象和类。 - **虚拟机运行**:ABAP程序运行在SAP专有的...

    abap7.4 新特性

    在 ABAP 7.40 中,语言层面引入了许多重要的改进和新增功能,这些变化旨在提高开发效率、增强代码可读性,并更好地支持现代开发实践。接下来,我们将对这些新特性进行详细的探讨。 #### 表达式 - **Inline 声明**...

    关于SAP开发语言abap的基础语法

    ABAP是高级企业应用程序语言,它支持封装性和继承性,封装性是面向对象的基础,而继承性是建立在封装性基础上的重要特性。ABAP语言适合生成报表,支持对数据库的操作,如:Sqlserver,Oracle,DB2 等主流数据库系统。 ...

    java +abap+rfc

    以下是关于"java + abap + rfc"的相关知识点: 1. **Java Connector (JCo)**: JCo是SAP为Java开发者提供的一个API,它允许Java应用程序与SAP NetWeaver系统进行交互。JCo3是JCo的第三个版本,提供了更强大的功能和...

    JAVA与ABAP之间通过RFC互传数据_JCO实例及API

    在IT领域,尤其是在企业级应用开发中,Java和ABAP(Advanced Business Application Programming)是两种常用的编程语言。Java广泛应用于互联网应用,而ABAP则是SAP系统的核心编程语言。为了实现不同系统的集成和数据...

    abap语言编程学习

    ### ABAP语言编程学习 #### ABAP语言简介与重要性 ABAP(Advanced Business Application Programming)是一种由SAP公司开发的高级商务应用编程语言。它主要用于SAP系统的开发与维护,是SAP技术栈的核心组成部分之...

    ABAP_4语言入门.pdf

    ABAP_4语言入门;ABAP ABAP/4 简介 SAP最初 开发ABAP/4( 高级商业应 用程序设计 )语言仅为 内部使用, 为应用程序 员提供优化 的工作环境 。 经过不断 的改进和修 改以满足商 业领域的需 要。现在,ABAP/4 已成为 ...

    30天学会ABAP很好的教程

    ABAP的另一个显著特性是其跨平台性,类似于Java,ABAP程序可以在任何操作系统上运行,兼容多种数据库,并能在不同的网络系统中无缝运行。ABAP字典实现了透明表的概念,使得开发者在ABAP层面上操作的表与底层数据库...

    ABAP 锁对象与加锁机制

    ABAP 锁对象与加锁机制是 SAP 系统中的一种逻辑锁机制,用于保持数据的一致性和同步访问。锁对象是通过 SE11 创建的,自定义的锁对象必须以 EZ 或者 EY 开头命名。每个锁对象都可以包含一个 PRIMARY TABLE 和多个 ...

    ABAP语言,SAP学习资料大全

    这个"ABAP语言,SAP学习资料大全"的压缩包显然包含了深入学习ABAP和SAP系统的核心内容。 在ABAP的学习中,有几个关键的知识点: 1. **基础语法**:ABAP是一种结构化编程语言,其基本语法包括变量声明、数据类型、...

    SAP ABAP4语言学习

    ABAP(Advanced Business Application Programming)是SAP系统中用于开发业务应用程序的主要编程语言,它是一种4GL(第四代编程语言),与Visual Basic和JAVA在语法上有相似之处,但与传统的C、PASCAL等3GL语言有所...

    ABAP-AES-JAVA加密解密(带附件SE24-AES.RAR、JAVA-AES.RAR及测试案例)

    标题中的“ABAP-AES-JAVA加密解密”是指在ABAP和JAVA两个不同的编程环境中实现AES(Advanced Encryption Standard)加密算法的互操作性。AES是一种广泛应用的块密码标准,用于保护数据的安全,确保信息不被未经授权...

    SAP_ABAP_4.7.rar_SAP abap4_abap_abap chm_abap 4_abap4

    综上所述,"SAP_ABAP_4.7.CHM"是学习和精通SAP ABAP 4.7开发的重要参考资料,它将带领开发者深入理解ABAP语言,提升在SAP环境下的开发能力,实现高效的企业级应用开发。无论是初学者还是经验丰富的开发者,都能从中...

    abap基础word文档

    ABAP 编程语言还提供了一些特殊的语句和函数,例如链语句和异常捕获机制等。 在 ABAP 中,程序的创建是通过开发类(也称为 Package 包)来实现的。每一个程序都要属于一个开发类。ABAP 编辑器 SE38 提供了一个交互...

    5天轻松学会abap编程语言

    ABAP(Advanced Business Application Programming)是SAP公司的主要编程语言,用于开发企业级的应用软件,尤其是在SAP R/3和SAP S/4HANA系统中。本教程以"5天轻松学会ABAP编程语言"为主题,将带你深入理解ABAP的...

    ABAP培训教材

    ABAP(Advanced Business Application Programming)是SAP公司开发的一种编程语言,主要用于开发和扩展SAP系统。这篇“ABAP培训教材”旨在为初学者提供一个全面的入门指南,同时也适合作为培训课程的参考资料。 一...

Global site tag (gtag.js) - Google Analytics