代码,我回来了:P

来源:互联网 发布:超次元矩阵手游 编辑:程序博客网 时间:2024/05/01 21:27
好久没有写blog了。好象只要一放假,我就没有心情写blog,大概是现在太忙了吧:P

现在在bstek做实习生,看现在的情况来看的话,我可能做研发,这是我最有兴趣的,我想研发
应该是所有喜欢编程的朋友最喜欢的事了吧。做自己的事,总是不会觉得累;相反,如果是做自己
没有兴趣的或者枯燥乏味的工作,每天晚上睡10个小时白天都会犯困。

还有一个好消息,我们经理把他以前用的笔记本给我用,可以带回家的。感觉太爽了。。。

这个星期是在编程中度过的,好久没有写代码了,有点手生,但是还是完成了任务:)

技术笔记:
昨天写了一段代码,不过老是出错,是这样子的:

一、错误代码:
List list = logic.getChildren();

for (Iterator iterator = list.iterator(); iterator.hasNext();){
    A a = (A)iterator().next();
           
    if(aIsUseFul){
        doXXX(a);
               
        continue;
    }
    iterator.remove(a); //throw Exception!!!
}

看来遍历一个List时,不能对它进行remove或add。呵呵,写在这里,记下来。

二、TreeView选择对象类型的判断:
还有就是jface中的TreeView:

它的getSelection方法返回的IStructuredSelection并不是我们的model,而是一个
数据集合,所以用它的类型来和model比较是不会一样的。
可以这样写:

IStructuredSelection selection= (IStructuredSelection)viewer.getSelection();
if (selection.size() == 1) {
    Object element= selection.getFirstElement();
    if (element instanceof DataSet) {
        ((AddColumnAction)addColumnAction).setDataSet((DataSet)element);
        addColumnAction.setEnabled(true);
    }else
        addColumnAction.setEnabled(false);
}
好久没写插件了,好多都忘了呵呵。

三、引入第三方包:
有一个比较重要的,就是在做eclipse插件时,如果引入第三方包的设置问题。

如果一般的包,用以前《RCP》里讲的方法,新建一个Plug-in from existing JAR就ok了。

但是如果是象log4j,commons包里的digester,这样做就不行了,会抛出许多
ClassNotFoundExceptions 和 NoClassDefFoundErrors。因为它们用到了java的反射机制,
而它们的classloader不能访问到我们的类。

解决办法非常简单,eclipse 3.2的plugin.xml编辑器里就能搞定:

1.先在project属性里找到Java Build Path,在Libraries面板中加入第三方jar文件,然后在
Order and Export中选择这些包。

2.回到plugin.xml编辑器,在runtime面板中的Exported Package中添加所有包。
然后在右下角的Classpath中加入第三方jar文件就ok了。

四、解析xml文件
commons包中的digester包非常好用:P

这个星期写了个eclipse小插件,主要是通过UI来编辑xml配置文件。
发几张截图上来。
原创粉丝点击