作为一个程序员,我们的休息时间在哪里?当你感到疲惫的时候,不妨静下心来,看一看别人写的代码,或者优秀程序员的杰作,可以说是另一种好的放松方式.
虽然Java没有文学那么优美,用文字来表达情感,但Java却用另一种方式,A-Z等字符诉说着另一种情感,让我们大家一起来读Java,来发现美.
今天比较清闲,就在网上找了一下源码,想到ibatis,也用了很久,而今天再想起的时候,发现已不是曾经的她了,而变成了mybatis,先了解了一下之后,从SVN上把源代码检索下来,
http://mybatis.googlecode.com/svn/trunk/,从IO包看了一下,当看到这个类的时候,产生了这个想法,如何让你的代码写的漂亮,写的全面,功能强大,扩展性强?如何让别人喜欢上你的代码?
以下代码,整体来说,只是提供了3个方法,但每一个方法却又分成3块,而这些都很类似,看上去,就像一个,对于编程3年的我来说,这样的代码,无非就是最漂亮的,没有多余的代码,每一行,每一块,都有真实的意义.如果说,还要继续优化的,我想还是可以找出问题,不过,有些心里晓得就行了,不必争论.
请仔细看一下吧,也许你看完之后,会有另类感觉.但有人也许会认为很不值得一提,毕竟优秀的代码太多了,而我在这里只是想要表达,我们也可以把Java代码当作一种美文读,不要感觉乏味,枯燥.
请大家一起读Java美文,让我们一起从这里寻找快乐.
package org.apache.ibatis.io;
import java.io.InputStream;
import java.net.URL;
/**
* A class to wrap access to multiple class loaders making them work as one
*/
public class ClassLoaderWrapper {
ClassLoader defaultClassLoader;
ClassLoaderWrapper() {
}
/**
* Get a resource as a URL using the current class path
*
* @param resource - the resource to locate
* @return the resource or null
*/
public URL getResourceAsURL(String resource) {
return getResourceAsURL(resource, new ClassLoader[]{
defaultClassLoader,
Thread.currentThread().getContextClassLoader(),
getClass().getClassLoader(),
ClassLoader.getSystemClassLoader()
});
}
/**
* Get a resource from the classpath, starting with a specific class loader
*
* @param resource - the resource to find
* @param classLoader - the first classloader to try
* @return the stream or null
*/
public URL getResourceAsURL(String resource, ClassLoader classLoader) {
return getResourceAsURL(resource, new ClassLoader[]{
classLoader,
defaultClassLoader,
Thread.currentThread().getContextClassLoader(),
getClass().getClassLoader(),
ClassLoader.getSystemClassLoader()
});
}
/**
* Get a resource from the classpath
*
* @param resource - the resource to find
* @return the stream or null
*/
public InputStream getResourceAsStream(String resource) {
return getResourceAsStream(resource, new ClassLoader[]{
defaultClassLoader,
Thread.currentThread().getContextClassLoader(),
getClass().getClassLoader(),
ClassLoader.getSystemClassLoader()
});
}
/**
* Get a resource from the classpath, starting with a specific class loader
*
* @param resource - the resource to find
* @param classLoader - the first class loader to try
* @return the stream or null
*/
public InputStream getResourceAsStream(String resource, ClassLoader classLoader) {
return getResourceAsStream(resource, new ClassLoader[]{
classLoader,
defaultClassLoader,
Thread.currentThread().getContextClassLoader(),
getClass().getClassLoader(),
ClassLoader.getSystemClassLoader()
});
}
/**
* Find a class on the classpath (or die trying)
*
* @param name - the class to look for
* @return - the class
* @throws ClassNotFoundException Duh.
*/
public Class> classForName(String name) throws ClassNotFoundException {
return classForName(name, new ClassLoader[]{
defaultClassLoader,
Thread.currentThread().getContextClassLoader(),
getClass().getClassLoader(),
ClassLoader.getSystemClassLoader()
});
}
/**
* Find a class on the classpath, starting with a specific classloader (or die trying)
*
* @param name - the class to look for
* @param classLoader - the first classloader to try
* @return - the class
* @throws ClassNotFoundException Duh.
*/
public Class> classForName(String name, ClassLoader classLoader) throws ClassNotFoundException {
return classForName(name, new ClassLoader[]{
classLoader,
defaultClassLoader,
Thread.currentThread().getContextClassLoader(),
getClass().getClassLoader(),
ClassLoader.getSystemClassLoader()
});
}
/**
* Try to get a resource from a group of classloaders
*
* @param resource - the resource to get
* @param classLoader - the classloaders to examine
* @return the resource or null
*/
InputStream getResourceAsStream(String resource, ClassLoader[] classLoader) {
for (ClassLoader cl : classLoader) {
if (null != cl) {
// try to find the resource as passed
InputStream returnValue = cl.getResourceAsStream(resource);
// now, some class loaders want this leading "/", so we'll add it and try again if we didn't find the resource
if (null == returnValue) returnValue = cl.getResourceAsStream("/" + resource);
if (null != returnValue) return returnValue;
}
}
return null;
}
/**
* Get a resource as a URL using the current class path
*
* @param resource - the resource to locate
* @param classLoader - the class loaders to examine
* @return the resource or null
*/
URL getResourceAsURL(String resource, ClassLoader[] classLoader) {
URL url;
for (ClassLoader cl : classLoader) {
if (null != cl) {
// look for the resource as passed in...
url = cl.getResource(resource);
// ...but some class loaders want this leading "/", so we'll add it
// and try again if we didn't find the resource
if (null == url) url = cl.getResource("/" + resource);
// "It's always in the last place I look for it!"
// ... because only an idiot would keep looking for it after finding it, so stop looking already.
if (null != url) return url;
}
}
// didn't find it anywhere.
return null;
}
/**
* Attempt to load a class from a group of classloaders
*
* @param name - the class to load
* @param classLoader - the group of classloaders to examine
* @return the class
* @throws ClassNotFoundException - Remember the wisdom of Judge Smails: Well, the world needs ditch diggers, too.
*/
Class> classForName(String name, ClassLoader[] classLoader) throws ClassNotFoundException {
for (ClassLoader cl : classLoader) {
if (null != cl) {
try {
Class> c = Class.forName(name, true, cl);
if (null != c) return c;
} catch (ClassNotFoundException e) {
// we'll ignore this until all classloaders fail to locate the class
}
}
}
throw new ClassNotFoundException("Cannot find class: " + name);
}
}
分享到:
相关推荐
适合小学生一年级读的美文.doc
“读千古美文-做博学少年”班会记录文本.doc
Java编写的文本朗读系统是一种基于Java技术实现的软件应用,它能够将文本内容转化为语音输出,方便用户在无法或不便阅读的情况下通过听觉获取信息。这种系统在教育、无障碍技术、语音助手等领域有着广泛的应用。 ...
初中语文文学讨论美文荐读天下荒年
高中语文 读书杂志美文 农业生产责任制遐思学习近年来关于农业生产责任制报刊文献有感素材.doc
美文读后感参考.doc
有的孩子朗诵了关于人生哲理的美文《尊严》,在声音中传达出对个人尊严重要性的认识,鼓励大家即使在物质条件不足的情况下,也要维护内心的自尊与骄傲。爱国主义情感深厚的美文《一个中国孩子的呼声》让孩子们在朗诵...
初中语文文学讨论美文荐读读书笔记:舆论与新闻
本文以“初中语文文学讨论美文荐读读书是快乐的”为主题,揭示了读书带来的多重乐趣。 首先,读书的快乐在于它能引领我们进入一个澄明清澈的心灵世界。正如文中所述,阅读《唐诗三百首》等经典文学作品,仿佛与历史...
初中语文文学讨论美文荐读梯子
"CHM格式经典美文阅读电子书"是将大量的优秀文章集合在一起,通过CHM的形式提供给读者,便于离线浏览和保存。 美文阅读电子书是一种深受读者喜爱的阅读材料,它包含了各种主题的文章,如爱情、亲情、友情和生活感悟...
优秀英语经典美文评读.doc
初中语文文学讨论美文荐读受戒
初中语文文学讨论美文荐读棋王
初中语文文学讨论美文荐读真理
初中语文文学讨论美文荐读斗争
初中语文文学讨论美文荐读初恋
初中语文文学讨论美文荐读自信
初中语文文学讨论美文荐读实践
初中语文文学讨论美文荐读生生世世