实体转换、写接口文档、json解析代码快速编写

手写的一款快速编辑get set方法,文档,js值解析的代码生成工具,
当面对字段很多的对象转换,构造,set等操作时,本方法可明显的提高开发效率。

生成代码

	public static <T> void writeSomeEasy(Class<T> clst, WriteType writeType) {
		Field[] declaredFields = clst.getDeclaredFields();
		StringBuffer sb = new StringBuffer();
		String clasName = clst.getSimpleName();
		String newObj = clasName + " " + firstLowerCase(clasName) + "= new " + clasName + "();";
		sb.append(newObj + "\r\n");
		for (Field field : declaredFields) {
			String fieldName = field.getName();
			if ("serialVersionUID".equals(fieldName)) {
				continue;
			}
			String objectName = firstLowerCase(clst.getSimpleName());
			String simpleName = field.getType().getSimpleName();
			String text = getTestByFields(writeType, fieldName, simpleName, objectName);
			sb.append(text + "\r\n");
		}
		System.out.println(sb.toString());
		//将代码拷到粘贴板上,按ctrl+v即可编写完成代码
		DrinFunnyUtils.setSysClipboardText(sb.toString());
	}

生成需要输出的代码

private static String getTestByFields(WriteType writeType, String fieldName, String typeName, String key) {
		switch (writeType) {
		case doc_param:
			// |id|否|string|id|
			return "|" + fieldName + " |否  |" + typeName + " |" + fieldName + "   |";
		case doc_result:
			// |id|string|id|
			return "|" + fieldName + " |" + typeName + "   |" + fieldName + " |";
		case str_json_getstr:
			// String id=model.getString("id");
			return "String " + fieldName + "= " + key + ".getString(\"" + fieldName + "\");";
		case set_model:
			// model.setId(id);
			return key + ".set" + DrinStringUtils.firstUpperCase(fieldName) + "(" + fieldName + ");";
		case set_model_withmap:
			// model.setId(id);
			return key + ".set" + DrinStringUtils.firstUpperCase(fieldName) + "(importMap.getString(\"\"));";
		case get_set:
			// model.setId(model.getId());
			return key + ".set" + DrinStringUtils.firstUpperCase(fieldName) + "(" + key + ".get"
					+ DrinStringUtils.firstUpperCase(fieldName) + "());";
		case this_get_set:
			// model.setId(this.id);
			return key + ".set" + DrinStringUtils.firstUpperCase(fieldName) + "(this." + fieldName + ");";
		case this_set:
			// this.id=model.getId();
			return "this." + fieldName + "=" + key + ".get" + DrinStringUtils.firstUpperCase(fieldName) + "();";
		case type_get:
			// String id=model.getId();
			return typeName + " " + fieldName + " = " + key + "." + "get" + DrinStringUtils.firstUpperCase(fieldName)
					+ "();";
		default:
			break;
		}
		return null;
	}

生成类型枚举

public static enum WriteType {
		doc_param, doc_result, str_json_getstr, set_model, get_set, this_get_set, this_set, type_get, set_model_withmap
	}

将代码拷贝到粘贴板上

public static void setSysClipboardText(String writeMe) {
		Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard();
		Transferable tText = new StringSelection(writeMe);
		clip.setContents(tText, null);
		System.out.println("请按ctrl+v见证奇迹...");
	}

首字母小写

public static String firstLowerCase(String str) {
		char[] charArray = str.toCharArray();
		charArray[0] = (char) (charArray[0] + 32);
		return new String(charArray);
	}

首字母转大写

public static String firstUpperCase(String str) {
		try {
			char[] charArray = str.toCharArray();
			charArray[0] = (char) (charArray[0] - 32);
			return new String(charArray);
		} catch (Exception e) {
			return str;
		}
	}

调用示例

public static void main(String[] args) {
		DrinReflectUtils.writeSomeEasy(User.class, WriteType.set_model);
	}

控制参输出:

User user= new User();
user.setId(id);
user.setPassword(password);
user.setHeadImg(headImg);
user.setCreateBy(createBy);
user.setCreateDate(createDate);
user.setUpdateBy(updateBy);
user.setUpdateDate(updateDate);
user.setRemarks(remarks);
user.setDelFlag(delFlag);
user.setSort11(sort11);
user.setSort12(sort12);
user.setSort21(sort21);
user.setSort22(sort22);
user.setSort31(sort31);
user.setSort32(sort32);
user.setMobile(mobile);
user.setUserName(userName);
user.setOldName(oldName);
user.setAccount(account);
user.setPosition(position);
user.setSecondPosition(secondPosition);
user.setPostcode(postcode);
user.setCallAddress(callAddress);
user.setBirthPlace(birthPlace);
user.setGraduate(graduate);
user.setIdCard(idCard);
user.setEmail(email);

请按ctrl+v见证奇迹...
很抱歉,我无法提供完整的Java数据推送程序,因为这个程序需要根据具体的业务需求和数据源来定制。但是,我可以提供一些基本的步骤和代码示例来帮助你开始编写你的程序。 1. 导入所需的库文件 在Java程序中,需要使用一些库文件来处理网络连接、数据格式转换等操作。你需要在项目中导入这些库文件。以使用Apache HttpClient库为例,你可以在项目中添加以下依赖项: ``` <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.13</version> </dependency> ``` 2. 创建HTTP连接 使用Apache HttpClient库,你可以创建一个HTTP连接到目标服务器。以下是一个示例代码: ``` CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost("http://example.com/data"); ``` 在这个示例中,我们创建了一个HTTP POST请求,并指定了目标URL。 3. 设置请求头 在发送HTTP请求之前,你需要设置一些请求头信息。以下是一个示例代码: ``` httpPost.addHeader("Content-Type", "application/json"); ``` 在这个示例中,我们设置了Content-Type头,以指示请求体的格式为JSON。 4. 设置请求体 根据你的业务需求和数据源,你需要准备好要发送的数据,并将其转换为HTTP请求体。以下是一个示例代码: ``` String data = "{\"key1\": \"value1\", \"key2\": \"value2\"}"; StringEntity entity = new StringEntity(data, ContentType.APPLICATION_JSON); httpPost.setEntity(entity); ``` 在这个示例中,我们创建了一个JSON格式的字符串,并使用StringEntity将其转换为HTTP请求体。 5. 发送请求并处理响应 最后,你可以发送HTTP请求,并处理从服务器返回的响应。以下是一个示例代码: ``` CloseableHttpResponse response = httpClient.execute(httpPost); HttpEntity responseEntity = response.getEntity(); if (responseEntity != null) { String responseString = EntityUtils.toString(responseEntity); System.out.println(responseString); } httpClient.close(); ``` 在这个示例中,我们发送HTTP请求,并将响应实体转换为字符串。你可以根据具体的需求来解析响应数据并进行相应的处理。 希望这些示例代码可以帮助你开始编写Java数据推送程序。需要注意的是,这只是一个简单的示例,你需要根据具体的业务需求和数据源来进行定制和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值