- 浏览: 598727 次
- 性别:
- 来自: 安徽
文章分类
最新评论
-
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 966转自一个没写地址的网站,所以我也写他的网址了,肯定不是他们原创 ... -
jvm优化配置
2010-04-23 17:38 1108JVM优化配置《一》 OOM ... -
国外项目的代码质量真是高啊
2010-03-27 02:19 2654近期有幸承接到了一个 ... -
django做的那么好,我还有必要维护做java版lightmtv的吗?
2009-03-22 21:07 2207我一直想做web框架,后来做了lightmtv。 做的终于有 ... -
AOP不就是HOOK嘛
2008-10-07 16:20 1237AOP就是HOOK 炒概念,大忽悠 -
Hibernate各模块之间应注意兼容性
2008-09-10 16:11 1474http://www.hibernate.org/6.htm ... -
让runjettyrun可以修改运行中的项目
2008-07-30 16:53 1922最近使用runjettyrun 替代了jettylaucher ... -
你认为java适合开发互联网网站吗?
2008-07-21 13:44 4147我这里说的互联网网站指的是拥有很大并发访问量的互联网网站,并且 ... -
Person对象中"姓-名"的设计及中英习惯不同的问题
2008-06-25 11:42 1463以前一直用 FirstName,LastName来进行设计,一 ... -
Maven-Ant-Task 使用手记
2008-04-15 15:51 7654Maven的依赖管理的确是个好东西。但在集成构建方面,Ant显 ... -
对象关联关系
2008-03-04 15:03 2635双向关联,lazy Global Refrence Key, ... -
给国人的CTE的一些建议
2008-01-17 10:45 2811非常好的项目,首先他是中国人开发的,太棒了! http://w ... -
Hibernate ? ActiveRecord ? pretty code!
2008-01-09 22:44 2352看到了段代码,贴出来聊聊 public class Per ... -
官方Annotations文档中文版
2007-12-30 12:03 2613以下几个Java官方文档描述了一些java区别于其他语言的特殊 ... -
Holder模式
2007-04-28 15:33 1933程序经常需要用到配置文件,但我们又并不想关心何时读取配置文件, ... -
获取java heap 大小
2007-04-09 14:28 2613The heap is the area in memory ... -
运行web项目的几种方法
2007-04-02 16:56 40261. 使用tomcat plugin,eclipse 插件,可 ... -
也论java加壳
2007-03-18 14:15 13064在C世界,对代码进行加 ... -
请大家试用,疯狂POJO,crazyPOJO-0.0.1
2007-03-15 23:14 4426什么是crazyPOJO? 是一个基于jdk5 annotat ... -
修改了Tapestry5的源码,完全支持中文了
2007-03-15 22:25 6186Tapestry5最新check下来的代码,中文问题还没有解决 ...
相关推荐
本文将深入探讨如何使用反射获取注解以及如何在Spring框架中获取特定包下的所有类文件。 首先,让我们看看如何通过反射获取注解。在Java中,注解是一种元数据,它提供了向编译器或JVM提供有关代码额外信息的方式。...
1. **Class.forName(类名字符串)**: 这种方式通过传入类的全名(包括包名)作为参数,动态地加载并返回对应的Class对象。如果类尚未被加载到JVM,那么它会先进行加载。 2. **类名.class**: 这是一种更直接的方式,...
这篇文章将向大家分享如何使用 Java 反射机制和第三方工具包 org.reflections 来实现动态获取实现某个接口下所有的实现类对象集合。 首先,为什么我们需要动态获取实现某个接口下所有的实现类对象集合?在实际开发...
1.Class对象 Class对象包含了与类相关的信息。事实上,Class对象就是用来创建类的所有的“普通”对象的。 类是程序的一部分,每...一旦某个类的Class对象被载入内存,它就被用来创建这个类的所有对象。看下面示例。
获取到Class对象后,我们可以通过`getDeclaredFields()`方法获取类的所有声明的字段(包括私有字段)。对于每个Field对象,我们可以执行以下操作: 1. 获取字段名称:`Field.getName()` 2. 获取字段的注释:`Field....
本示例“测量Java对象大小的demo”提供了一种方法,通过使用Java的`java.lang.instrument`包来注入`javaagent`,进而利用`Instrumentation`接口测量Java对象的精确内存占用。下面我们将详细探讨这一过程。 首先,`...
标题“Classdir”指的是一个可能存在于某个编程语言(如PHP)中的类库或函数,用于获取指定目录下所有子目录的列表。这个功能对于开发者来说非常实用,因为它可以帮助他们遍历文件系统,处理目录结构,或者进行文件...
在上面的代码中,我们使用了 Vue 的模板语法来渲染一个列表,我们的目标是点击某个项目时,添加一个名为 `check` 的 class,然后获取含有这个 class 的 DOM 文件。 接下来,让我们来看一下 JavaScript 代码: ```...
- `getDeclaredFields`:这个方法可以用来获取对象的所有声明字段,包括公有、保护、默认(包)访问和私有字段,但不包括继承的字段。 - `getDeclaredMethods`:这个方法可以用来获取对象的所有声明方法,同样包括...
要判断对象是否包含某个属性,我们首先需要获取该对象的`Type`对象,然后通过`Type`对象的`GetProperty`方法查找指定名称的属性。如果找到该属性,说明对象包含这个属性;否则,表示不包含。 下面是一个详细的过程...
每个类都有一个Class对象,可以通过`[[MyClass class] description];`来查看类的信息。类对象包含了类的名字、父类、实例变量布局、方法列表等元数据。Objective-C中的`Class`实际上是一个指向结构体的指针,这个...
"class16"可能是某个特定的类的命名,它可能代表一类特定的对象或者有特定功能的代码块。类通常包含属性(变量)和方法(函数),用于封装数据和行为。理解类的构造、继承、多态和封装等概念是深入学习面向对象编程...
### Java中遍历某个目录下的所有文件及文件夹中的文件 在Java开发中,经常会遇到需要遍历指定目录及其子目录下所有文件的情况。本文将详细介绍如何使用Java标准库中的`java.io.File`类来实现这一功能。我们将通过一...
9. 为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为( )。答案:A. public 知识点:类的访问权限 解释:public 访问权限使得成员可以被类的对象访问。 10. 通过指向...
录制完成后,可以查看对象库,确认所有交互过的界面元素都被正确地识别并存储在对象库中。 2. **回放测试场景**:完成录制后,通过回放功能验证测试脚本的正确性。在回放过程中,观察应用程序的行为是否符合预期,...
如果`.class`文件位于某个目录结构下,需要提供完整的包路径,例如`java com.example.MyClass`。如果`test.sh`是一个Shell脚本,它可能包含了这些命令,以便简化和自动化运行过程。 4. **Shell脚本(test.sh)**: `...
在Python编程中,有时我们需要将类(Class)对象转换为JSON格式或字典(Dictionary),以便于数据存储、传输或序列化。本文将详细介绍如何在Python中实现这一过程,并提供相应的示例代码。 首先,JSON(JavaScript ...
4. **线程同步**:由于DirectShow可能在多个线程环境中运行,因此BaseClass包含了线程同步工具,如CriticalSection对象,确保在多线程环境下的数据安全。 5. **过滤器图管理**:在DirectShow中,过滤器图是连接各个...
•接口的继承和类继承不一样,接口完全支持多继承,子接口扩展某个父接口将会获得父接口的所有抽象方法,常 量属性,内部类和枚举类定义。 使用接口 •接口可以用于声明引用类型的变量,但接口不能用于...
这种组合方式使得Java在单继承的限制下仍能实现多态性。 总之,Java的内部类提供了一种灵活的方式来组织和设计复杂的系统。通过熟练掌握内部类的使用,开发者可以编写出更加模块化、可读性强的代码,同时利用其特性...