JavaBean任意层次代码生成器——基于Builder设计模式

本文介绍了一个使用Builder设计模式实现的JavaBean任意层次代码生成器。配置文件的编写是关键,类名前缀'Cls',内部类用'-'连接,如:ClsPerson-Des-Lib。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天写了一个只能解析一个层次的的代码生成器,今天对代码做了优化,能对任意层次的JavaBean进行解析

首先,需要写配置文件

注意,配置文件的要领是:假如是一个类名的话,需要在前面加关键字Cls,如果是某个类的内部类,需要依次在最外部的类用"-"连起来,如: Person-Des-Lib

测试配置文件如下:

Cls:Person
String:name
int:age
int:sex
String:description
Cls:Person-Des
int:salary
List<String>:girls
Cls:Person-Des-Lib
int:type
String:shit

这次写的ruby的代码有点面向对象的感觉,代码如下:

# 一个类包含:类名,属性列表和内部类指针
class Clazz
	def initialize(cls_name)
		@cls_name = cls_name
		@attrs=[]
		@lead_cls_names=nil  #前面有几个前导类名
	end
	def cls_name
		@cls_name
	end
	
	attr_accessor :attrs, :lead_cls_names
end

#属性
class Attr
	def initialize(type=nil,name=nil)
		@type,@name=type,name
	end
	attr_accessor :type, :name
end

class Env
	def initialize()
		@clz_list = []     #类的容器
		@cur_clz = nil     #当前类
		@attr = nil		   #当前属性
		@attr_index=0      #当前类的第几个属性
		@clz_index=0	   #当前属于第几个类
	end
	
	attr_accessor :clz_list,:cur_clz,:attr,:attr_index,:clz_index
end

$env = Env.new

def print_clz_list              #测试容器数据
	$env.clz_list.each do |clzz|
		lead_cls_names = clzz.lead_cls_names
		print "============"
		lead_cls_names.each do |lead_names|
			print lead_names + "-
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值