对其它工具的分析集合
Posted wd404
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对其它工具的分析集合相关的知识,希望对你有一定的参考价值。
1、tab打开文本框
notepad++、pycharm打开文本框,tab标签显示的是文件名,而非路径名。
这样节约了tab显示空间,一般来说使用者能够确定打开文件所在目录,但是程序应当有一个dict对象,存储tab标签与对应的绝对路径,以便对文件进行读写操作。
2、树组件节点的单击和双击
(1)一般来说,树组件节点的展开和收起对单击和双击事件不影响
(2)树组件节点的单击、双击和右键菜单是关系比较密切的
- 在pyqt5的一般实现来说,这三者并不相互干扰,可以分别独立触发
- 从交互习惯上来说,右键菜单习惯先点击,然后右键菜单
(3)当想实现点击树组件节点,进行ui更新。
如果是在现有ui的基础上刷新内容,比如文本框组件或表格组件,那么一般设计为单击触发。参考burp的target功能的树组件导航
如果需求是会增加组件,或者替换现有组件这类影响较大的操作,则会设计为双击触发。参考pycharm的文件导航树组件
3、两种经典布局
(1)参考pycharm
先分为上下部分,上面区域左侧是树组件导航、右侧是tab组件容纳工作区域,下面区域是tab组件容纳输出
(2)参考burp target
先分为左右部分,左侧是树组件导航,右侧上面是表格组件容纳工作区域,下面是输出
(3)总结
- 功能管理,分为导航、输入和操作、输出三个区域
- 简介的界面,利用tab组件收纳、下拉列表替代多选框或单选框、输出组件合并等优化
- 允许组件拉伸,允许组件隐藏和显示控制
JAVA-初步认识-常用对象API(集合框架-泛型-泛型类)
一.
泛型我们了解完基本原理之后,除了在集合中用来传递参数类型外,还有其它的应用。它还能为我们提供很多设计上的便捷。
介绍一下以前和现在的定义方法,有什么不一样。
这里面为了方便于应用,搞了一个工具类,和主要的程序分开发。
对工具类的描述,现在要操作person,要用工具类对person对象进行操作,可以完成person对象的设置和获取。
这个工具类只能操作person,不能操作其它对象。如果想要其它对象,还要书写Tool1,Tool2......这样很麻烦,怎么办?(对传输进来的person对象进行操作)
可以不可以定义一个工具类,操作所有对象。如果想定义一个工具类,操作所有对象,应该找到所有对象的共性,比如将这里的person改为object就可以了。
如果写成object了,那就意味着什么对象都能操作。
有一个快捷修改操作,如上图所示。
现在演示一下,建立学生和工人,以及人这三个类,学生和工人都继承人这个类,这是下面演示的基础。(这些都是在泛型主函数之外的部分)
现在往主函数中创建一个工具类,然后传入一个学生类,再通过gerobject取出学生类。图书显示了波浪线,表明出错了。
出错的原因是:学生往工具类中存储后,就意味着向上转型了,接着往外取的时候就是object类。要想取出特有类型的话,必须要强转。
上面是我们以前的做法,运行一下,没有出错。
现在一不小心,往里面传递了一个worker类,
回过去看tool类,里面接收的是object类,所以往里面存储student类,或者worker类,都是可以的。编译时不会报错,但是上述程序在运行时出现了错误。
这就是我们以前的做法,为了提高程序的扩展性,我们用的全都是object,什么对象都能往里面传递。好处是object出现,提高扩展性了,但是带有弊端了,就是要强转。不强转不能用。
现在做一些改动,对tool中装载有object的程序,做一个改动。
将修改前后写在一个java工具类中,上下对照着看。在写工具类的时候,这个是用来操作对象工具类,紧接着你要操作哪个对象,不确定。以前是用object,现在有了泛型,就不那么弄了。操作哪个对象,你给我传递,传递哪个,就操作哪个。在上面定义参数,这是5.0才有的。
以前玩Arralist是java定义好的,现在这个是我们定义的,这叫做自定义泛型类。
如果没有泛型就用object,你可以理解为泛型是object中的一种方案,但是这种方式更为安全。
现在回过来取修改前面错误的程序,
如果从头到尾都是student的话,编译运行是没有问题的,但是现在不小心输入了worker了。
上面的输入worker的写法,如果是早期的写法,运行的时候就出现了错误。现在改成泛型的写法,编译都通过不了。这就是泛型的好处,进一步验证了泛型将运行时的问题,转到了编译时期。避免了强转的麻烦。
这种方式要比object安全的多,但是书写麻烦,要写尖括号,
以上是关于对其它工具的分析集合的主要内容,如果未能解决你的问题,请参考以下文章