- 浏览: 347446 次
- 性别:
- 来自: 北京
最新评论
-
hanmiao:
如果接口里的方法声明会抛出某些异常,那么在使用lambda 表 ...
Java8中Lambda表达式的10个例子 -
彭成林:
我试了一下,,虽然配置这个插件简单,,但是验证码的效果真是不咋 ...
一个Struts2验证码生成插件JCaptcha4Struts2的使用经历 -
桃汁天天:
非常感谢 为我们剩下了许多研究时间
ExtJs中根据后台数据动态创建表格列及其数据 -
jobar:
mistake 写道var resultSetId = typ ...
ExtJs中根据后台数据动态创建表格列及其数据 -
mistake:
var resultSetId = type === 'con ...
ExtJs中根据后台数据动态创建表格列及其数据
文章列表
ExtJs中根据后台数据动态创建表格列及其数据
- 博客分类:
- ExtJS
renderDynamicTable: function(dataset,type, tab) {
var resultSetId = type === 'control' ? '#controlResultSet' : '#testResultSet';
var ctlSet = dataset;
if(Ext.isArray(ctlSet) && ctlSet.length > 0){
var ctlData = [];
var fields = [];
...
面向对象的JS(5) 模块化和命名空间
- 博客分类:
- OOJS
模块化
一旦我们有很多自定义对象类型,我们需要对它们进行分组,并管理他们的可见性、依赖性和加载。命名空间和模块可以用来处理这些任务。(需要注意的是EcmaScript v6(Harmony)正在开发一个成熟的模块系统,由浏览器支持标准前我们也可以利用现有的一些库来实现这些功能。)
参考文章:http://www.sencha.com/blog/toward-modern-web-apps-with-ecmascript-6
1 命名空间
目前在JavaScript中没有直接的命名空间支持。我们可以通过创建对象并给对象属性填充对象类型来创建命名空间。
//create namespace
va ...
面向对象的JS(4) 继承机制
- 博客分类:
- OOJS
在JavaScript中有好几种方法都可以实现继承。原型继承——使用prototype作为一种继承机制有许多优点,下面举例:
function Parent() {
var parentPrivate = "parent private data";
var that = this;
this.parentMethodForPrivate = function () {
...
面向对象的JS(3) 对象创建和成员作用域
- 博客分类:
- OOJS
一 对象创建
1 使用new操作符
内置或自定义的对象类型的实例可以用new操作符创建。new操作符只运行构造函数,已存在的对象不能用new再创建一次。首先new操作符创建一个空对象;然后调用构造函数同时将新创建的对象赋值给this,构造函数执行其初始化工作。
//or var dog = {};
//or var dog = new MyDogType();
var dog = new Object();
dog.name = "Scooby";
dog.owner = {};
dog.owner.name = "Mike";
dog.ba ...
1 实例方法
实例方法是由实例对象访问的方法,实例对象由new操作符创建。实例成员通过this关键字、prototype、构造器闭包或者Object.defineProperty来创建
function Cat(name) {
var voice = "Meow";
this.name = name;
this.say = function () {
return voice;
}
}
Cat.prototype.eat = function () {
return "Eating" ...
Java和JavaScript在面向对象方面的比较
Java
JavaScript
静态类型
动态类型
自定义类型可以是类,接口或枚举定义
自定义类型由函数或原型定义
类型不可在运行时改变
类型可在运行时改变
定义变量需要声明具体类型(强类型)
定义变量不需要声明具体类型(弱类型)
构造器是具体的方法
构造器只是一个函数,构造器与函数之间无区别
类和实例是不同的实体
一切均为对象,构造器函数和原型也是对象
支持静态和实例成员
不直接支持静态和实例成员
由抽象类和接口支持抽象类型
不直接支持抽象类型
良好的成 ...
给ExtJs树节点添加提示
- 博客分类:
- ExtJS
1 给树treeview增加事件监听
"#filetreeview": {
itemmouseenter: this.onFiletreeviewItemMouseEnter
}
2 实现监听函数
onFiletreeviewItemMouseEnter: function(dataview, record, item, index, e, eOpts) {
dataview.tip = Ext.create('Ext.tip.ToolTip', {
target: item,
delegate: dataview.itemSelector,
t ...
在TreeGrid上增加键盘监听事件
- 博客分类:
- ExtJS
1 首先定义gridview id
viewConfig: {
itemId: 'assetTreeView',
markDirty: false
}
2 在Controller里面增加监听函数
"#assetTreeView": {
itemkeydown: this.onAssetTreeViewItemKeydown
}
3 函数实现
onAssetTr ...
集合框架(2)-什么是stream?
- 博客分类:
- java8
stream是一系列的值。包java.util.stream defines定义了引用值(Stream)的stream类型和一些原语stream类(IntStream,LongStream和DoubleStream)。streams类就像迭代器,它们按处理需求产生元素,但不与任何特定的存储机制关联。stream有时候局部计算-它们中某些元素仍会生成,有时候它的元素会全部参与计算,此时会结束stream。stream可以将数组、集合、生成函数或者一个IO通道作为它的数据源;它也可以是另一个stream的操作结果(见下文)。一种可部分计算流可以有无穷多个元素生成,例如来源于生成函数。
stream ...
在Grid上增加键盘监听事件
- 博客分类:
- ExtJS
1 首先定义gridview id
viewConfig : {
itemId: 'listsgridview',
},
2 在Controller里面增加监听函数
"#listsgridview": {
itemkeydown: this.onListsgridviewItemKeydown
},
3 函数实现
onListsgri ...
集合框架(1)-Java集合框架走向何方?
- 博客分类:
- java8
Java集合框架走向何方?
到Java8发布前,Java集合框架的历史将超过15年,并且它成功的经受住了考验,但其背后的一些假设随着Java程序执行环境的变化正越来越多的遭受质疑。最大的变化是在硬件环境中,设计师已经把他们的注意力从提高各个内核的时钟速度并放置更多内核的目标转移到同一个芯片上。要从大规模多核处理器中获得可用潜在性能的提升,应用程序必须能够将它们的工作量分派到许多不同的线程中,使每个线程能够在“自己的”核心独立运行的。类库设计者需要将他们的注意力转移以利用这一变化,因为在许多java程序中最密集的活动是批处理集合元素,Java集合框架是这个变革的中心。
从Java集合框架使用的 ...
缺省方法(4)-如何处理菱形问题?
- 博客分类:
- java8
如何处理菱形问题?
“菱形问题”是一种由于多重继承引起的歧义性问题。对于像c++这类允许状态多重继承的语言来说是一个严重的问题。然而在java中只能在接口上而不允许类的多重继承,因此不会包含状态。
考虑下面的情况:
interface A {
default void m() { ... }
}
interface B extends A {}
interface C extends A {}
class D implements B, C {}
上一节给出的缺省方法选择规则为这种情况及其变化提供了一个直观的 ...
缺省方法(3)-如何解决方法声明的冲突?
- 博客分类:
- java8
如何解决方法声明的冲突?
因为可以从多个接口继承,相同的缺省方法可以通过不同的路径继承。由于每个继承的默认方法提供了不同的实现,编译器需要一种方式从中做出选择。下面是它的工作模式:
(1)类总是优先。类或父 ...
Java中缺省方法会引入多重继承吗?
不会,因为多重继承已经存在于Java中了。接口类型的多重继承从一开始一直是语言的一个特点。缺省方法确实引入了一种新的多重继承即多重继承行为。Java将依然不会有多重继承的状态,就像C++那样。
这里是多重继承行为的一个例子。新的接口java.util.Sized声明了方法size和sEmpty并提供了后者的默认实现:
public interface Sized {
public default boolean isEmpty() {
return size() == 0;
} ...
缺省方法(1)-什么是缺省方法?
- 博客分类:
- java8
什么是缺省方法?
在"为何要在java中加入Lambda表达式"中使用了一个简单的集合方法forEach来举例,接受一个函数将之作用于每个传入的元素,例如:
pointList.forEach(p -> p.move(p.y, p.x));
但java集合框架在15年前设计的时候并没有考虑函数式思想,没有forEach方法,或这种策略要求的任何其他方法。将这些方法单独添加到集合框架中会破坏高度基于接口的集合框架类的一致性,就是这些接口定义了客户端代码依赖的契约(出于同样的原因,增加静态方法到工具集合类中也不是一个可取的解决方案)。所以框架接口需要反映添加到其集合 ...