文档章节

JCodeModel

素人派
 素人派
发布于 2015/07/22 07:56
字数 345
阅读 16
收藏 0
  • 介绍
我们在使用Eclipse时,可能会经常用到生成getter、setter方法的功能,那这些功能都是怎么实现的呢?下面的文章就是介绍生成源代码的。 CodeModel 是用于生成 Java 代码的 Java 库,它提供了一种通过 Java 程序来生成 Java 程序的方法。 CodeModel 项目是 JAXB 的子项目。JAXB(Java Architecture for XML Binding)是一项可以根据 XML Schema 产生 Java 类的技术,它提供了将 XML 实例文档反向生成 Java 对象树的方法,并能将 Java 对象树的内容重新写到 XML 实例文档。JAXB 是 JDK 的组成部分。JAXB RI(Reference Implementation)即 schema compiler 能够将 XML 的 schema 文件映射为相应的 Java 元素。
  • API
https://codemodel.java.net/nonav/apidocs/overview-summary.html
  • Maven
[codesyntax lang="xml"]
<dependency>
	<groupId>com.sun.codemodel</groupId>
	<artifactId>codemodel</artifactId>
	<version>2.2</version>
</dependency>
[/codesyntax]
  • 例子
[codesyntax lang="java"]
package org.suren.jcodemodel;

import java.io.File;

import com.sun.codemodel.JBlock;
import com.sun.codemodel.JClass;
import com.sun.codemodel.JCodeModel;
import com.sun.codemodel.JDefinedClass;
import com.sun.codemodel.JDocComment;
import com.sun.codemodel.JFieldRef;
import com.sun.codemodel.JMethod;
import com.sun.codemodel.JMod;

/**
 * JCodeModel使用实例
 * 
 * @author zhaoxj
 * 
 * @2015年6月9日
 */
public class CodeModelTest {

	public static void main(String[] args) throws Exception{
		JCodeModel codeM = new JCodeModel();
		File file = new File("d:/");
		
		JDefinedClass definedCls = codeM._class("org.suren.Hello");
		
		//生成javaDoc
		JDocComment jdoc = definedCls.javadoc();
		jdoc.add("from http://surnepi.com\n");
		jdoc.add("JCodeModel example");
		jdoc.addXdoclet("author suren");
		
		//生成方法
		JMethod helloMethod = definedCls.method(JMod.PUBLIC, codeM.parseType("void"), "hello");
		JBlock helloBody = helloMethod.body();
		
		JClass sysCls = codeM.ref("java.lang.System");
		JFieldRef out = sysCls.staticRef("out");
		helloBody.invoke(out, "println").arg("hello world JCodeModel, from http://surenpi.com");
		
		//生成源文件
		codeM.build(file);
	}
}
[/codesyntax]
  • 参考
http://www.ithov.com/linux/125525_7.shtml http://www.ibm.com/developerworks/cn/java/j-lo-codemodel/

本文转载自:http://surenpi.com/2015/06/09/jcodemodel/

共有 人打赏支持
上一篇: 自动化网络部署
下一篇: mysql 备份与恢复
素人派
粉丝 24
博文 1907
码字总数 10223
作品 6
东城
程序员
私信 提问
实战CXF调用Webxml天气预报服务

http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl 这个天气预报的WebService服务; 我也是初学者, 在尝试调用的过程中发现不少问题, 也有一些小心得, 希望与大家分享, 更希...

squanchao
2016/09/07
18
0
实战CXF调用Webxml天气预报服务

实战CXF调用Webxml天气预报服务 今晚群里的kasasis同学问我会不会使用CXF调用 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl 这个天气预报的WebService服务; 我也是初学...

bayer
2012/04/06
0
3

没有更多内容

加载失败,请刷新页面

加载更多

没有更多内容

总结:volatile关键字

实现内存可见性原理: 对volatile变量执行写操作时,会在写操作之后加入一条store指令,将CPU缓存数据强制刷新到主内存中 对volatile变量执行读操作的时候,会在读操作前加入一条load指令,重...

浮躁的码农
25分钟前
0
0
OSChina 周六乱弹 —— 看见这花臂了么?赶紧叫大佬!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享周华健的单曲《有没有一首歌会让你想起我》 《有没有一首歌会让你想起我》- 周华健 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
今天
112
4
Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份。不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence。 在升级过程中的一...

honeymoose
今天
2
0
C++随笔(四)Nuget打包

首先把自己编译好的包全部准备到一个文件夹 像这样 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/201......

Pulsar-V
今天
3
0
再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
23
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部