仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 943|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA编程:Java Bean 天生器

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:46:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
认真的记,感觉很紧张根本就没有时间和能力,来对技术知识点进行思考。这样课下就只能对知识进行简单的理解,其实简单的理解就是记忆课堂上讲的知识点,这是一个javabean天生器,使用一个文本文件(无妨称为bean界说文件)天生javabean。

开辟过程当中我们大概会用到良多数据对象(值对象),多数被封装成一个bean。固然各年夜

IDE都供应了便利天生这类数据bean的工具,但都是一步一步填对话框式的,不像这个,

这个能够在一个文件里界说多个Bean,一次天生一切bean。固然它也有范围性,今朝只会

复杂的天生private数据域和public的setter、getter;而且不会替你导进需要的包。但只管云云,

也能年夜小气便数据bean对照多,或bean字段对照多的使用。

bean界说文件(.bd)格局以下:

//这是正文,以"//"打头。
//用"#"暗示bean称号。
//正文不克不及和bean称号或数据字段写在统一行。
#MyBean1
inti
longl
Strings

#MyBean2
Stringuser
Stringpwd

#MyBean3
Objecto
...

...



importjava.io.*;
importjava.util.*;


publicclassCreateBean{

privateBufferedReaderin;
privateStringinputFile;
privateHashMapbeans=newHashMap();
privatestaticfinalcharbeanMark=#;

publicCreateBean(StringinputFileName){
inputFile=inputFileName;
try{
in=newBufferedReader(newFileReader(inputFileName));
}catch(FileNotFoundExceptione){
System.out.println("file"+inputFileName+"notfound!");
e.printStackTrace();
}
}

publicvoidgenerate(){
Stringln=null;
StringbeanName=null;
ArrayListproperties=newArrayList();

try{
ln=in.readLine().trim();//throwioexcption

while(ln!=null){
if(
(ln.length()<1)||
(ln.startsWith("//"))||//comments
(ln.charAt(0)!=beanMark&&ln.split("s+").length!=2)
){}
elseif(ln.charAt(0)==beanMark){
if(beanName!=null){
beans.put(beanName,properties);//savelastbeantohashMap
}

properties=newArrayList();

//gennewbeanname
beanName=upperFirst(ln.substring(1));
System.out.println("bean:"+beanName);
}
else{
System.out.println("        "+ln);
properties.add(ln);
}

ln=in.readLine();
if(ln==null){//lastbean
if(beanName!=null){
beans.put(beanName,properties);
}
}
else{
ln=ln.trim();
}
}//while

System.out.println(beans.size()+"beanstested...");
dumpBeans();

}catch(IOExceptione){
System.out.println("readfilefailed!");
}finally{
try{
if(in!=null)
in.close();
}catch(IOExceptione2){
System.out.println("closeinputfilefailed!");
e2.printStackTrace();
}
}

}

publicstaticStringupperFirst(Strings){
StringBufferbuf=newStringBuffer(s);
if(buf.charAt(0)>=a&&buf.charAt(0)<=z){
buf.setCharAt(0,(char)(buf.charAt(0)-32));
}
returnbuf.toString();
}

privatevoiddumpBeans(){
System.out.println("creating...");

StringBufferbuf=null;
Stringkey=null;
PrintWriterpw=null;
Iteratoritr=null;
SetkeySet=beans.keySet();

if(keySet!=null)
itr=keySet.iterator();

while(itr.hasNext()){
buf=newStringBuffer();
key=(String)itr.next();
ArrayListl=(ArrayList)beans.get(key);
buf.append("publicclass");
buf.append(key);
buf.append("{

");

//addproperties
for(inti=0;i<l.size();i++){
buf.append("        private");
buf.append((String)l.get(i));
buf.append(";
");
}
buf.append("
");

//addgetterandsetter
for(inti=0;i<l.size();i++){
//getter
Stringitem=(String)l.get(i);//like"inta"
Stringtype=item.split("s+",2)[0];//tokneeded!!!
Stringvar=item.split("s+",2)[1];
buf.append("        public"+type+"get");
buf.append(upperFirst(var));
buf.append("(){
                returnthis.");
buf.append(var);
buf.append(";
        }
");

//setter
buf.append("        publicvoidset");
buf.append(upperFirst(var));
buf.append("("+type+""+var+"){
                this.");
buf.append(var);
buf.append("=");
buf.append(var);
buf.append(";
        }
");
}
buf.append("}
");

//dumptoanamedfile
try{
pw=newPrintWriter(
newBufferedWriter(
newFileWriter(key+".java")));
pw.write(buf.toString());
pw.close();

}catch(IOExceptione){
System.out.println("createjavafilefailed!");
e.printStackTrace();
}

}

}

/********************************/

publicstaticvoidmain(String[]args)throwsException{

if(args.length<1){
System.out.println("usage:");
System.out.println("        javaCreateBeanyourInputFileName");
System.out.println("whereyourinputfileshouldlikethis:");
System.out.println("#myBean1");
System.out.println("intfield1");
System.out.println("longfield2");
System.out.println("Stringfiled3");
System.out.println("...
");
System.out.println("#myBean2");
System.out.println("charfield1");
System.out.println("Objectfield2");
System.out.println("...");
System.out.println("
...");
return;
}
System.out.println("begin...");
CreateBeancb=newCreateBean(args[0]);
cb.generate();
System.out.println("complete.");

}

}




还得说上一点,就java本质而言,是面相对象的,但是你有没有发现,java也不全是,比如说基本类型,int,那他就是整型而不是对象,转换类型是还得借助包装类。
沙发
发表于 2015-1-21 13:59:11 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
蒙在股里 该用户已被删除
板凳
发表于 2015-1-30 19:45:01 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
莫相离 该用户已被删除
地板
发表于 2015-2-6 15:33:17 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
老尸 该用户已被删除
5#
发表于 2015-2-7 13:05:11 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
再见西城 该用户已被删除
6#
发表于 2015-2-7 21:49:12 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
小魔女 该用户已被删除
7#
发表于 2015-2-23 11:26:51 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
活着的死人 该用户已被删除
8#
发表于 2015-3-4 23:10:20 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
灵魂腐蚀 该用户已被删除
9#
发表于 2015-3-5 19:19:38 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
山那边是海 该用户已被删除
10#
发表于 2015-3-7 13:21:19 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
乐观 该用户已被删除
11#
发表于 2015-3-11 05:32:23 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
飘飘悠悠 该用户已被删除
12#
发表于 2015-3-12 11:57:11 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
爱飞 该用户已被删除
13#
发表于 2015-3-19 21:39:56 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
若天明 该用户已被删除
14#
发表于 2015-3-20 18:34:31 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
第二个灵魂 该用户已被删除
15#
发表于 2015-3-22 01:07:59 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
因胸联盟 该用户已被删除
16#
发表于 2015-4-3 10:25:39 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
变相怪杰 该用户已被删除
17#
发表于 2015-4-5 23:22:04 | 只看该作者
是一种突破用户端机器环境和CPU
谁可相欹 该用户已被删除
18#
发表于 2015-4-10 13:07:59 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
小妖女 该用户已被删除
19#
发表于 2015-4-18 14:17:51 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 07:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表