社区
Java SE
帖子详情
高手进!各位有没有实现过包遍历?和找出指定包下面的所有类?
jery_lee
2003-12-11 10:58:29
RT!
高手进!各位有没有实现过包遍历?和找出指定包下面的所有类?
比如给定一个 在 classpath 中的包 (比如"com.xxx.xxx") ,要找出它下面的所有类 (public 就可以.)
...全文
228
10
打赏
收藏
高手进!各位有没有实现过包遍历?和找出指定包下面的所有类?
RT! 高手进!各位有没有实现过包遍历?和找出指定包下面的所有类? 比如给定一个 在 classpath 中的包 (比如"com.xxx.xxx") ,要找出它下面的所有类 (public 就可以.)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
HelloWorldd
2003-12-12
打赏
举报
回复
mark
jery_lee
2003-12-12
打赏
举报
回复
RT!
jery_lee
2003-12-12
打赏
举报
回复
不是目录遍历,我是要找到在 classpath 中的包下面的所有类..
classpath下面的包我可以用 Package.getPackages();取得.
abcpl
2003-12-12
打赏
举报
回复
我看也是这个意思
Yanbin_Q
2003-12-12
打赏
举报
回复
就是遍历目录和文件呀。
wobelisk
2003-12-12
打赏
举报
回复
用reflect应该可以.我实验一下
jery_lee
2003-12-12
打赏
举报
回复
Thanks. CoolAbu(绿茶的白开水(★★★★))
CoolAbu
2003-12-12
打赏
举报
回复
下面就是一个找包中Class的,你看看
package studytest;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
import java.awt.*;
import java.awt.event.*;
import java.lang.reflect.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
public class ClassTree {
public static void main(String[] args) {
JFrame frame=new ClassTreeFrame();
frame.show();
}
}
class ClassTreeFrame extends JFrame implements ActionListener
{
private DefaultMutableTreeNode root;
private DefaultTreeModel model;
private JTree tree;
private JTextField textField;
public ClassTreeFrame()
{
setTitle("Class Tree");
setSize(300,200);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
root=new DefaultMutableTreeNode(java.lang.Object.class);
model=new DefaultTreeModel(root);
tree=new JTree(model);
addClass(getClass());
ClassNameTreeCellRenderer renderer=new ClassNameTreeCellRenderer();
renderer.setClosedIcon(new ImageIcon("C:\\1.gif"));
renderer.setOpenIcon(new ImageIcon("C:\\3.gif"));
renderer.setLeafIcon(new ImageIcon("C:\\2.gif"));
tree.setCellRenderer(renderer);
Container contentPane=getContentPane();
contentPane.add(new JScrollPane(tree),"Center");
textField=new JTextField();
textField.addActionListener(this);
contentPane.add(textField,"South");
}
public void actionPerformed(ActionEvent event)
{
try
{
String text=textField.getText();
addClass(Class.forName(text));
textField.setText("");
}
catch(ClassNotFoundException e)
{
Toolkit.getDefaultToolkit().beep();
}
}
public DefaultMutableTreeNode findUserObject(Object obj)
{
Enumeration e=root.breadthFirstEnumeration();
while(e.hasMoreElements())
{
DefaultMutableTreeNode node=(DefaultMutableTreeNode)e.nextElement();
if(node.getUserObject().equals(obj))
return node;
}
return null;
}
public DefaultMutableTreeNode addClass(Class c)
{
if(c.isInterface()||c.isPrimitive()) return null;
DefaultMutableTreeNode node=findUserObject(c);
if(node!=null) return node;
Class s=c.getSuperclass();
DefaultMutableTreeNode parent;
if(s==null)
parent=root;
else
parent=addClass(s);
DefaultMutableTreeNode newNode=new DefaultMutableTreeNode(c);
model.insertNodeInto(newNode,parent,parent.getChildCount());
TreePath path=new TreePath(model.getPathToRoot(newNode));
tree.makeVisible(path);
return newNode;
}
}
class ClassNameTreeCellRenderer extends DefaultTreeCellRenderer
{
private Font plainFont=null;
private Font italicFont=null;
public Component getTreeCellRendererComponent(JTree tree,Object value,boolean selected,boolean expanded,boolean leaf,int row,boolean hasFocus)
{
super.getTreeCellRendererComponent(tree,value,selected,expanded,leaf,row,hasFocus);
DefaultMutableTreeNode node=(DefaultMutableTreeNode)value;
Class c=(Class)node.getUserObject();
if(plainFont==null)
{
plainFont=getFont();
if(plainFont!=null)
italicFont=plainFont.deriveFont(Font.ITALIC);
}
if((c.getModifiers()&Modifier.ABSTRACT)==0)
setFont(plainFont);
else
setFont(italicFont);
return this;
}
}
wobelisk
2003-12-12
打赏
举报
回复
use ZipFile to get ZipEntry of each class.
then use reflection
Maybe there're some better ways
hangzhoufeihu
2003-12-11
打赏
举报
回复
好象有难度
c++基础代码.docx
,。
c语言获取文件夹下的所有bmp,把一个目录下的全部.bmp和.jpg文件找到,
包
含路径的文件名添加到一个文件列表(链表)中...
把一个目录下的全部.bmp和.jpg文件找到,
包
含路径的文件名添加到一个文件列表(链表)中./dir|–1.jpg|–2.bmphead–>.name==“./dir/1.jpg”–>.name==“./dir/2.bmp”求各位
高手
帮忙小弟刚开始学者木有头绪啊解决方案20FILE*pf_path_file;//搜索lp_path目录
包
括子目录全部文件名,保存...
threejs点击模型
实现
模型边缘高亮的选中效果--更改后提
之前的经验都不适用了。考察知识点:数组题目分析:由于可以根据k值判断数组中数的范围(0 ~ k - 1),可以使用计数的方法,先
遍历
一遍数组,将每个数出现的次数记录下来,然后按照从小。题干要求计算素因子的和,n个数,每个数都可能有若干个素因子,选择当前数的素因子相当于一次分叉,那么选择过程形成一个多叉树,最后一个数的素因子选择后,相当于到达多。牛牛们,
有没有
好用的加速器啊,github老上不去 #我的实习求职记录# #正在实习的碎碎念# #我的实习求职记录# #我的实习日记# #晒一晒我的offer#
批处理之for语句从入门到精通--呕血整理
在批处理中,for是最为强大的命令语句,它的出现,使得解析文本内容、
遍历
文件路径、数值递增/递减等操作成为可能;配合if、call、goto等流程控制语句,更是可以
实现
脚本复杂的自动化、智能化操作;合理使用for语句,还能使代码大为简化,免除各位编写大量重复语句之苦。而能否熟练使用for语句,已经成为衡量一个人批处理水平高低最主要的标准。
Java之美[从菜鸟到
高手
演变]之集合
类
【吐血推荐!讲得太好了!!!】
source: http://blog.csdn.net/zhangerqing/article/details/8122075 最近在找工作,目前还没有定下来,拿到了一个公司的offer,不过被当白菜了,正在商量薪资方面的事情。随着百度面试的失败,梦想再次破灭。想想这一年来的奋斗,别是一番滋味在心头。突然想起一句话:踏歌长行,梦想永在! 说程序员是幸福的,因为我们每天都会和大脑过
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章