- 浏览: 587490 次
- 性别:
- 来自: 安徽
文章分类
最新评论
-
jianxin1009:
你说的答案是对的
Re: 一道微软的面试题(年薪40万) -
thrillerzw:
应该相信爱情
忽然相信爱情。。。 -
weng:
jaxchow 写道mikeandmore 写道我觉得国外之所 ...
国外项目的代码质量真是高啊 -
cinhoo:
怎么也应该叫大蛇蛋才对嘛
lazypy 这个小蛇蛋不错 -
rosolio:
这个怎么解决?
Hibernate Annotation的中@ManyToOne和CascadeType问题
查看了javadoc,google了,没有找到好的答案,有个例子指出了一种方法,给一个入口Class,搜索这个Class所继承,引用的Class,以及这些继承引用的Class所继承引用的Class,如此递归下去,得到一个Class的List。但这种方法不能达到我的目的,我所能知道的只有package name,没有任何相关的class,如何才能或的这个package下的Class对象的list呢?
也许用得到
very good,thank you very very much.
评论
10 楼
frogfool
2007-03-20
让我联想到
javax.naming.Context.URL_PKG_PREFIXES
不知道是怎么找到javax.naming.Context.URL_PKG_PREFIXES
是如何找到其下的context factories?!
javax.naming.Context.URL_PKG_PREFIXES
不知道是怎么找到javax.naming.Context.URL_PKG_PREFIXES
是如何找到其下的context factories?!
9 楼
kenny319
2007-03-20
在您确切知道CLASS文件的路径的前提下是可以实现的,否则,字节码文件甚至可以通过网络下载,所以无法实现。
8 楼
祁兴明
2007-03-20
rtm :你的这个解决办法是不错哦 可不可以把里面的代码分割为一个个的方法呢 请您试一试 OK!
7 楼
rtm
2007-03-20
String classpath = "bean,spring"; String[] classpaths = StringUtils.split(classpath, ","); List xmllist = new java.util.ArrayList(); for (int j = 0; j < classpaths.length; j++) { Enumeration pathEnumeration = SpringHelper.class.getClassLoader() .getResources(classpaths[j]); if (pathEnumeration == null) { throw new RuntimeException("路径[" + classpaths[j] + "]不存在"); } while (pathEnumeration.hasMoreElements()) { URL url = (URL) pathEnumeration.nextElement(); String path = url.getPath(); String protocol = url.getProtocol(); if ("file".equals(protocol)) { File file = new File(url.getPath()); if (file.isDirectory()) { File[] files = file.listFiles(); if (files != null) { for (int i = 0; i < files.length; i++) { File xmlFile = files[i]; if (xmlFile.getName().endsWith(".xml")) { if (!xmllist.contains(classpaths[j] + "/" + xmlFile.getName())) { xmllist.add(classpaths[j] + "/" + xmlFile.getName()); } } } } } else { if (file.getName().endsWith(".xml")) { if (!xmllist.contains(classpaths[j] + "/" + file.getName())) { xmllist.add(classpaths[j] + "/" + file.getName()); } } } } if ("jar".equals(protocol)) { URL jarUrl = new URL(path); path = jarUrl.getPath(); if (path.endsWith("!/" + classpaths[j])) { /** * jar包中 */ path = path.substring(0, path.lastIndexOf("!/" + classpaths[j])); JarFile jarFile = new JarFile(new File(path)); Enumeration enumeration = jarFile.entries(); while (enumeration.hasMoreElements()) { JarEntry jarEntry = (JarEntry) enumeration .nextElement(); if (jarEntry.getName().startsWith( classpaths[j] + "/") && jarEntry.getName().endsWith(".xml")) { String xmlfileName = jarEntry.getName() .substring( jarEntry.getName().lastIndexOf( "/") + 1, jarEntry.getName().length()); if (!xmllist.contains(classpaths[j] + "/" + xmlfileName)) { xmllist.add(classpaths[j] + "/" + xmlfileName); } } } } } } if (xmllist.size() == 0) { throw new RuntimeException("路径[" + classpaths[j] + "]下没有spring配置文件"); } } String[] xmlFileNames = new String[xmllist.size()]; for (int i = 0; i < xmlFileNames.length; i++) { xmlFileNames[i] = (String) xmllist.get(i); System.out.println(xmlFileNames[i]); } ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext( xmlFileNames); factory = (BeanFactory) appContext;
6 楼
Godlikeme
2007-03-18
classloader有一个搜索class的方式,不知道可不可以用于package的搜索,哪位熟悉的给点拨下,
另,楼上的楼上,有FileUtils, ClassUtils可以让代码更整洁些。
另,楼上的楼上,有FileUtils, ClassUtils可以让代码更整洁些。
5 楼
yiding_he
2007-03-18
搜索 classpath,然后读取所有的 class 文件。仅供参考。
4 楼
tiyi
2007-03-18
public static List<String> getClasses(String packageName, Class clazz) { List<String> res = new ArrayList<String>(); String pckgname = "test.package.test"; pckgname = packageName; String name = new String(pckgname); if (!name.startsWith("/")) { name = "/" + name; } name = name.replace('.', '/'); URL url = ClassTool.class.getResource(name); if (url == null) { return res; } File directory = new File(url.getFile()); if (directory.exists()) { String[] files = directory.list(); for (int i = 0; i < files.length; i++) { if (files[i].endsWith(".class")) { String classname = files[i].substring(0, files[i].length() - 6); try { String clsName = pckgname + "." + classname; logger.debug("clsName=" + clsName); Object o = Class.forName(clsName).newInstance(); // if (o instanceof Class) { // System.out.println(classname); // } if (o instanceof Object) { } res.add(pckgname + "." + classname); } catch (ClassNotFoundException cnfex) { logger.error("getClasses(String)" + cnfex, cnfex); } catch (InstantiationException iex) { } catch (IllegalAccessException iaex) { } } } } return res; }
也许用得到
3 楼
jasongreen
2007-03-18
ajoo 写道
理论上是不可能的。java的package是开放式的,同一个pacakge的类完全可以放在不同的地方。java并没有提供标准的可移植的方法来遍历class.
但是实际应用中,可以利用一些假设(比如,这个package的类都被deploy到一个jar或者一个目录下,这时候可以用zip或者File来读取这些类。)
具体实现参考Ant的junit task,或者http://www.openqa.org/jtc里面遍历类的方法。
但是实际应用中,可以利用一些假设(比如,这个package的类都被deploy到一个jar或者一个目录下,这时候可以用zip或者File来读取这些类。)
具体实现参考Ant的junit task,或者http://www.openqa.org/jtc里面遍历类的方法。
very good,thank you very very much.
2 楼
Godlikeme
2007-03-18
yes, I did the same way as ajoo said. ant is a good reference.
1 楼
ajoo
2007-03-18
理论上是不可能的。java的package是开放式的,同一个pacakge的类完全可以放在不同的地方。java并没有提供标准的可移植的方法来遍历class.
但是实际应用中,可以利用一些假设(比如,这个package的类都被deploy到一个jar或者一个目录下,这时候可以用zip或者File来读取这些类。)
具体实现参考Ant的junit task,或者http://www.openqa.org/jtc里面遍历类的方法。
但是实际应用中,可以利用一些假设(比如,这个package的类都被deploy到一个jar或者一个目录下,这时候可以用zip或者File来读取这些类。)
具体实现参考Ant的junit task,或者http://www.openqa.org/jtc里面遍历类的方法。
发表评论
-
jvm调优经验
2010-04-23 17:50 928转自一个没写地址的网站,所以我也写他的网址了,肯定不是他们原创 ... -
jvm优化配置
2010-04-23 17:38 1078JVM优化配置《一》 OOM ... -
国外项目的代码质量真是高啊
2010-03-27 02:19 2557近期有幸承接到了一个 ... -
django做的那么好,我还有必要维护做java版lightmtv的吗?
2009-03-22 21:07 2168我一直想做web框架,后来做了lightmtv。 做的终于有 ... -
AOP不就是HOOK嘛
2008-10-07 16:20 1182AOP就是HOOK 炒概念,大忽悠 -
Hibernate各模块之间应注意兼容性
2008-09-10 16:11 1442http://www.hibernate.org/6.htm ... -
让runjettyrun可以修改运行中的项目
2008-07-30 16:53 1877最近使用runjettyrun 替代了jettylaucher ... -
你认为java适合开发互联网网站吗?
2008-07-21 13:44 4087我这里说的互联网网站指的是拥有很大并发访问量的互联网网站,并且 ... -
Person对象中"姓-名"的设计及中英习惯不同的问题
2008-06-25 11:42 1425以前一直用 FirstName,LastName来进行设计,一 ... -
Maven-Ant-Task 使用手记
2008-04-15 15:51 7566Maven的依赖管理的确是个好东西。但在集成构建方面,Ant显 ... -
对象关联关系
2008-03-04 15:03 2591双向关联,lazy Global Refrence Key, ... -
给国人的CTE的一些建议
2008-01-17 10:45 2772非常好的项目,首先他是中国人开发的,太棒了! http://w ... -
Hibernate ? ActiveRecord ? pretty code!
2008-01-09 22:44 2302看到了段代码,贴出来聊聊 public class Per ... -
官方Annotations文档中文版
2007-12-30 12:03 2554以下几个Java官方文档描述了一些java区别于其他语言的特殊 ... -
Holder模式
2007-04-28 15:33 1874程序经常需要用到配置文件,但我们又并不想关心何时读取配置文件, ... -
获取java heap 大小
2007-04-09 14:28 2540The heap is the area in memory ... -
运行web项目的几种方法
2007-04-02 16:56 39661. 使用tomcat plugin,eclipse 插件,可 ... -
也论java加壳
2007-03-18 14:15 12984在C世界,对代码进行加 ... -
请大家试用,疯狂POJO,crazyPOJO-0.0.1
2007-03-15 23:14 4382什么是crazyPOJO? 是一个基于jdk5 annotat ... -
修改了Tapestry5的源码,完全支持中文了
2007-03-15 22:25 6144Tapestry5最新check下来的代码,中文问题还没有解决 ...
相关推荐
1.Class对象 Class对象包含了与类相关的信息。事实上,Class对象就是用来创建类的所有的“普通”对象的。 类是程序的一部分,每...一旦某个类的Class对象被载入内存,它就被用来创建这个类的所有对象。看下面示例。
•接口的继承和类继承不一样,接口完全支持多继承,子接口扩展某个父接口将会获得父接口的所有抽象方法,常 量属性,内部类和枚举类定义。 使用接口 •接口可以用于声明引用类型的变量,但接口不能用于...
2023年5月29日 4.1 包 包是由.class文件组成的一个集合 第2页/共41页 java期末复习第讲面向对象程序设计全文共41页,当前为第2页。 2023年5月29日 4.1.1 定义包 构建包语句的语法是: package pkg1[.pkg2[.pkg3…]]...
在Java中,如果一个程序加载了某个类,当程序退出前,如果你修改了类的源码,然后重新编译了新的.class文件来覆盖老的.class文件 ,这个新的.class文件不会被再次加载到程序中,那么,修改后的效果并不能立刻反映...
vue 动态添加class类名,灵活得让你发狂,下面示例几个 动态添加类名 <!-- 第一种方式:对象的形式 --> <!-- 第一个参数 类名, 第二个参数:boolean值 --> <!-- 对象的形式: 用花括号包裹...
一下,所有的对象我们用类去描述都是类似的,从上面人的描述可以看到, 做出一个类来,从定 义的角度分两部分,第一是从静态上描述,第二是从动态上描述, 静态上的描述就是我们所说的 LAMP 大讲堂PHP 面向对象技术...
public 说明类为公共类,该类可以被当前包以外的类和对象使用。 private 说明类为私有类。 (4) extends 子句用于说明类的直接超类。 (5) implements 子句用于说明类中将实现哪些接口,接口是 Java 的一种...
wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。 17、...
1. 用例(Use case)用来描述系统对事件... 某个对象在不同状态之间的转移 10. 一个设计得好的OO系统具有( B ) A. 低内聚、低耦合的特征 B. 高内聚、低耦合的特征 C. 高内聚、高耦合的特征 D. 低内聚、高耦合的特征
可以在下面的studentData表中找到此信息。 该程序将读取五个学生的列表,并使用函数调用来操纵数据。 在解析数据列表时,程序应使用学位课程指示的适当子类创建学生对象。 整个学生列表将存储在一个称为...
IOS 开发之Object-C中的对象详解 前言 ...类(class)负责描述某个特点类型的对象,其中包括方法和实例变量。类可以描述以下两种对象: 抽象概念,例如数据、字符串和指令集。 实际存在的事物,例如人
资源简介现有的 Java EE 应用 假定我们已经拥有了一个管理雇员...可以通过 ActionScript 编码创建该对象,也可以直接在 MXML 中定义一个 RemoteObject 对象,并列出其所有的方法: 清单 13. 定义 flexServiceRO ...
有时候,根据表达式的需要,某个数据需要被当成另外的数据类型来处理,这时,就需要强制编译器把变量或常数由声明时的类型转换成需要的类型。为此,就要使用强制类型转换说明,格式如下: int* iptr=(int*) &...
适合⽤来管理⽣命周期⽐较短或者不会被 远距离传递的动态对象,最好是局限于某个函数内部或者是某个类的内部。 声明: template< class T > class auto_ptr; template<> class auto_ptr; // 对类型void特化 成员...
wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。 14、Overload...
GoF 的《设计模式》是所有面向对象语言(C++ Java C#)的基础,只不过不同的语言将之实现得更方便地使用。 GOF 的设计模式是一座"桥" 就 Java 语言体系来说,GOF 的设计模式是 Java 基础知识和 J2EE 框架知识之间一...
可以代替当前对象完成一切操作,拥有当前对象的所有属性 前端优化:js中最好用三目运算代替if else 11.String: |--查找:x.indexOf(‘关键字’[,开始位置下标]) | 每次只查找第一次出现的位置 |--替换:x....
如何列出某个目录下的所有子目录 判断一个文件或目录是否存在 如何读写文件 7.Java多态的实现(继承、重载、覆盖) 8.编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。 9.Java中访问...
(有某个对象的所有权(访问权,⽣命控制权) 即是 强引⽤,所以shared_ptr是⼀种强引⽤型指针) (1)内部⼤概实现:每次复制,多⼀个共享同处资源的shared_ptr时,计数+1。每次释放shared_ptr时,计数-1。 当...
请问,应该选择下面哪一个字符串?( B ) A. “Server=AllWin;Data Source=PubBase;Initial Catalog=Test;Integrated Security=SSPI” B. “Server= AllWin;Data Source=PubBase;Database=Test;Integrated ...