在 BeanShell 中,你可以对 JavaBean 的属性进行存取,存取的方式如同使用字段一样。

  1. button = new java.awt.Button();
  2. button.label = "my button"; // 等同于: b.setLabel("my button");
  3. print( button.label ); // 等同于 print( b.getLabel() );

JavaBean 属性仅仅是一对要遵守命名规范的“setter”方法和“getter”方法。在上面的例子中,BeanShell 涉及一个名叫“setLabel()”的“setter”方法并使用该方法分配了一个 string 类型的值。之后使用 getLabel() 方法重新获得值。

Boolean 属性可以选择性地使用语法“is”作为“getter”方法。比如:(注意“infinite”属性和“isInfinite()”方法)

  1. Float f = new Float(42f);
  2. print( f.infinite ); // 等同于 print( f.isInfinite() ); // 打印 false

如 果有任何与一个实际 Java 对象字段名称存在歧义的情况(例如:上面 label 的例子)那么优先使用确切的字段名。如果你希望避免歧义,Beanshell 提供了一个附加的、统一的语法,不但能访问 Java Bean 属性还有 Hashtable 或者 Map。你可以使用“{}”大括号构建一个 String 的标识,作为任何适当类型变量的限定符。

  1. b = new java.awt.Button();
  2. b{"label"} = "my button"; // 等同于: b.setLabel("my button");
  3. h = new Hashtable();
  4. h{"foo"} = "bar"; // 等同于: h.put("foo", "bar");

注意图示中发生错误的地方,错误的下方是正确的代码。

java.util.Collections 的 API 适用的地方,同样支持 Map。

本文转自 tongqiuyan  51CTO博客,原文链接:http://blog.51cto.com/tongqiuyan/749512

BeanShell中Getter和Setter语法相关推荐

  1. java中getter和setter,Java中的Getter和Setter

    你提供的例子并不合适,至少不是表格和你提到的名字. 我会尝试一些更好的例子: 塞特斯 您可能希望主要使用它们进行验证.作为示例,setDate(日期d)可以检查数据是否在某个范围内,例如,未来不超过2 ...

  2. Java中getter和setter的一些理解

    工作中用C#开发,目前自学Java.自以为很理解Java中的getter和setter了,结果被朋友一问,发现还是一知半解,越想越懵逼. 问题主要有两个: 1. Java中为什么要用getter和se ...

  3. java中getter 和 setter 方法有什么意义?为什么不用public代替GS?

    知乎里的一个答案:https://www.zhihu.com/question/21401198 的确可以暴露,如果1. 所有内外代码都是你自己写:2. 这个模块再也不改了:3. 不会继承它,或者继承 ...

  4. java中驼峰编码,驼峰式命名法_小驼峰式命名法编程_java中getter和setter

    人们交流靠各种语言,每行都有每行的所谓的"行话".程序员也不例外,众所周知,程序员都是用代码进行交流的.那么除了在代码中的注释之外, 程序员如何读懂别人的程序呢? 当然,程序员之间 ...

  5. ES6—46:class中getter和setter的设置方法

    测试代码 实现效果

  6. JavaScript中闭包实现的私有属性的getter()和setter()方法

    注意: 以下的输出都在浏览器的控制台中 <!DOCTYPE html> <html> <head><meta charset="utf-8" ...

  7. 属性getter和setter

    我们知道,对象属性是由名字.值和一组特性构成的.在ECMAScript5 中,属性值可以用一个或两个方法替代,这两个方法就是getter和setter.由getter和setter定义的属性称做&qu ...

  8. Kotlin的getter和setter

    Blog快览 Java中getter和setter方法 Kotlin中的getter和setter方法 Kotlin中的get()和set()高级用法 Java中getter和setter方法 在Ja ...

  9. ES6新特性_ES6语法糖-class中的getter和setter设置---JavaScript_ECMAScript_ES6-ES11新特性工作笔记038

    我们来看一下这个class中的getter和setter这个,在java中也用对吧, 很简单. 看一下我们给Phone类添加一个get price(){} 这个表示我给price属性,添加了一个get ...

最新文章

  1. Office文件的奥秘——.NET平台下不借助Office实现Word、Powerpoint等文件的解析(一)...
  2. 移植U-BOOT之裁剪和修改默认参数(易用性)启动内核,以及对uboot进行分区
  3. 121_Power Query之R.Execute的read.xlsxODBC
  4. Hibernate 常见异常
  5. python日志输入 print 常用格式化符号 logging 日志输出
  6. 数据结构图文解析之:二分查找及与其相关的几个问题解析
  7. Win11没有nvidia控制面板怎么解决
  8. PCB加工文件—Gerber文件的导出(转载)
  9. 【利用VBA批量处理中望CAD的修改打印出PDF】
  10. leetcode *1818. 绝对差值和(2021.7.14)
  11. 为什么马云最佩服「唐僧团队」?
  12. BZOJ3689 异或之
  13. ECMWF数据批量下载
  14. 基于STM32智能RFID刷卡汽车位锁控制系统设计
  15. java计算机毕业设计springboot+vue度假山庄酒店管理系统
  16. 数字证书颁发及认证原理
  17. 小程序基于Taro的Canvas写字效果和背景图水印效果
  18. 微信点餐系统——买家类目service层创建并测试通过
  19. 《JavaScript实现页面图片滚动播放》
  20. Python 学习入门(0)—— 简明教程

热门文章

  1. AAAI 2020 论文接收结果出炉,得分 997 论文被拒,388 反而中了?
  2. 英国首相将授权华为接入英国5G网络
  3. 李彦宏称AI可让人们获得永生
  4. 顺序Guass消去法求解线性方程组的代码实现
  5. 烧脑:宇宙时空结构是量子纠错码
  6. 2G---5G与未来天线技术
  7. 为什么说无人出租车关乎特斯拉和Uber的生死存亡
  8. 上海人工智能再出重磅!寒武纪科技发布新一代云端AI芯片,联想、曙光、科大讯飞发布相关应用...
  9. 微软为什么要公开AI系统测试数据集和度量指标?
  10. AI 热潮之下,初创企业能否躲过科技巨头的碾压?