JAVA网站制作之Java Class 映照及有用工具类完全源代码...
你总不能说你写框架吧,那无疑会加大工作量,现在大多企业采取的是折中的办法,就是改别人写好的框架,可要改框架,前提是你对这个框架足够的了解,这就更难了。源代码packagecom.elink.util;/*
*<p>Company:凌科软件www.elingke.com</p>
*@authorliubaojun
*@version1.0
*Createdon2004-11-29
*来历于elinkBSP部分源代码
*/
importjava.lang.reflect.*;
importjava.net.*;
publicclassClassUtil
{
/**
@paramstrClassName
@paramargsType
@paramargs
@returnObject
@throwsjava.lang.NoSuchMethodException
@throwsjava.lang.SecurityException
@throwsjava.lang.ClassNotFoundException
@throwsjava.lang.InstantiationException
@throwsjava.lang.IllegalAccessException
@throwsjava.lang.IllegalArgumentException
@throwsjava.lang.reflect.InvocationTargetException
*/
publicstaticObjectloadClass(StringstrClassName,Class[]argsType,
Object[]args)
throwsNoSuchMethodException,SecurityException,ClassNotFoundException,
InstantiationException,IllegalAccessException,
IllegalArgumentException,InvocationTargetException
{
ObjectreturnObj=null;
ClassclassName=null;
Constructorconstructor=null;
className=Class.forName(strClassName);
constructor=className.getConstructor(argsType);
returnObj=constructor.newInstance(args);
returnreturnObj;
}
/**
@paramstrClassName
@returnObject
@throwsjava.lang.NoSuchMethodException
@throwsjava.lang.SecurityException
@throwsjava.lang.ClassNotFoundException
@throwsjava.lang.InstantiationException
@throwsjava.lang.IllegalAccessException
@throwsjava.lang.IllegalArgumentException
@throwsjava.lang.reflect.InvocationTargetException
*/
publicstaticObjectloadClass(StringstrClassName)
throwsNoSuchMethodException,SecurityException,ClassNotFoundException,
InstantiationException,IllegalAccessException,
IllegalArgumentException,InvocationTargetException
{
returnloadClass(strClassName,null,null);
}
publicstaticObjectloadClass(StringstrClassName,ObjectdefObj)
{
try
{
returnloadClass(strClassName,null,null);
}
catch(Throwableex)
{
LogUtil.logException(ex);
}
returndefObj;
}
/**
@paramclassObject
@paramstrMethodName
@paramargsType
@paramargs
@returnObject
@throwsjava.lang.NoSuchMethodException
@throwsjava.lang.SecurityException
@throwsjava.lang.IllegalAccessException
@throwsjava.lang.IllegalArgumentException
@throwsjava.lang.reflect.InvocationTargetException
*/
publicstaticObjectinvokeMothod(ObjectclassObject,StringstrMethodName,
Class[]argsType,Object[]args)
throwsNoSuchMethodException,SecurityException,IllegalAccessException,
IllegalArgumentException,InvocationTargetException
{
MethodconcatMethod=classObject.getClass().getMethod(strMethodName,
argsType);
returnconcatMethod.invoke(classObject,args);
}
/**
@paramclassObject
@paramstrMethodName
@returnObject
@throwsjava.lang.NoSuchMethodException
@throwsjava.lang.SecurityException
@throwsjava.lang.IllegalAccessException
@throwsjava.lang.IllegalArgumentException
@throwsjava.lang.reflect.InvocationTargetException
*/
publicstaticObjectinvokeMothod(ObjectclassObject,StringstrMethodName)
throwsNoSuchMethodException,SecurityException,IllegalAccessException,
IllegalArgumentException,InvocationTargetException
{
returninvokeMothod(classObject,strMethodName,null,null);
}
/**
@paramclassObject
@paramstrFieldName
@returnObject
@throwsjava.lang.NoSuchFieldException
@throwsjava.lang.SecurityException
@throwsjava.lang.IllegalArgumentException
@throwsjava.lang.IllegalAccessException
*/
publicstaticObjectgetFieldValue(ObjectclassObject,StringstrFieldName)
throwsNoSuchFieldException,SecurityException,
IllegalArgumentException,IllegalAccessException
{
ObjectretObj=null;
Fieldfield;
field=classObject.getClass().getDeclaredField(strFieldName);
retObj=field.get(classObject);
returnretObj;
}
/**
@paramclassName
@returnString
*/
publicstaticStringwhereClass(StringclassName)
{
StringretStr=null;
if(!className.startsWith("/"))
{
className="/"+className;
}
className=className.replace(.,/);
className=className+".class";
java.net.URLclassUrl=getResource(className);
if(classUrl!=null)
{
Stringstr=classUrl.getFile();
retStr=str;
}
returnretStr;
}
/**
@paramname
@returnjava.net.URL
*/
publicstaticURLgetResource(Stringname)
{
returnClassUtil.class.getResource(name);
}
publicstaticvoidcompiler(StringtargetDir,Stringfilename,Stringclasspath)throwsException
{
//javac-dE:/test-classpathC:workWEB-INFlibss.jare:/test/TestVector.java
Stringstr="javac-d"+targetDir+"-classpath"+classpath+""+filename;
LogUtil.logInfo(str);
Runtimeruntime=Runtime.getRuntime();
Processp=runtime.exec(str);
}
publicstaticvoidcompiler(StringtargetDir,Stringfilename)throwsException
{
//javac-dE:/test-classpathC:workWEB-INFlibss.jare:/test/TestVector.java
Runtimeruntime=Runtime.getRuntime();
Processp=runtime.exec("javac-d"+targetDir+""+filename);
}
}
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 是一种突破用户端机器环境和CPU http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 Java是一种计算机编程语言,拥有跨平台、面向对java 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
页:
[1]