参数|Java编程技巧:如何实现参数的输入输出?( 三 )
五 利用类字段实现
本章将从类字段入手,实现参数的输入输出功能。
5.1 利用线程本地变量实现
理论依据:
线程本地变量(ThreadLocal):线程本地变量不同于它们的普通变量,因为访问某个变量的每个线程都有自己的局部变量,且独立于变量的初始化副本。线程本地变量实例通常是类中的私有静态字段,它希望将变量状态与某一个线程关联起来。
要用类字段解决参数的输入输出问题,就必须考虑方法的线程安全性。这里,利用线程本地变量(ThreadLocal)来实现线程中输入输出参数值共享。
代码实现:
5.2 利用类成员变量实现
理论依据:
在上一章节中,利用线程本地变量(ThreadLocal)来实现线程中输入输出参数值共享,让方法的封装更复杂——需要从线程本地变量(ThreadLocal)读取和存储输入输出参数值。有没有一种更简单的方法,直接利用类成员变量实现输入输出参数值的共享呢?
答案是肯定的,可以把方法的封装和变量的定义封装到一个类中。这样,在每一个类实例中,都可以利用类成员变量来实现输入输出参数值的共享。但是,这个类是线程非安全的,必须在单线程中使用。
代码实现:
六 各种方法综合点评
下面,针对以上各种实现方法进行一个综合点评:
文章图片
总结如下:
各种实现方法有利有弊,应当根据具体的使用场景,来选择最适合的实现方法。
根据参数和返回值的类型选择实现方法:输入输出参数尽量使用方法参数实现,返回值尽量使用返回值实现。
根据参数和返回值的数量选择实现方法:数量少的尽量使用支撑类和元组类,数量多的尽量使用自定义类。
不建议使用一些取巧的实现方法,比如:3.2.利用单值数组实现、5.1.利用线程本地变量实现。
不推荐使用对象数组和对象Map,Java是强类型定义语言,不建议使用强制数据类型转化。
最适合本文中案例的实现方法是——3.4.利用支撑类实现。
后记
《庄子·养生主》有言:
吾生也有涯,而知也无涯。以有涯随无涯,殆已!
意思是:我的生命是有限的,但知识却是无限的。用有限的生命去追求无限的知识,必然会失败的。
所以,知识并不是越多越好,而是“学而精之,精而深之,深而新之 ”。
开发者训练营来了
三大领域八营齐开
云栖训练营提前开启报名,本次共3大领域8个训练营,包含K8S训练营、小程序与开发,DevOps日志分析实战、mPaaS小程序训练营,云开发Web实战训练营等。阿里云专家授课,3-7天带你轻松get实战能力,还有丰厚奖品,期待你“满载而归”!
推荐阅读
- 发展|户外小间距,户外小间距厂家,价格,参数,案例,效果
- on|Mini?LED,Mini?LED厂家,价格,参数,效果,案例
- Pixel|P0.7COB小间距厂家,价格,参数,优势
- 知识科普|COB小间距是什么?COB小间距厂家,价格,参数,优势。
- iPad|iPad 8详细参数曝光:A12芯片加持,预计本周亮相
- 知识科普|P0.9COB小间距厂家,价格,参数,优势
- Apple|iPhone 12摄像头参数曝光:还是1200万像素 传感器尺寸提高