我试图用构造函数(来自Ektorp库)扩展以下类:
public class CouchDbRepositorySupport<T extends CouchDbDocument> implements GenericRepository<T> {
...
protected CouchDbRepositorySupport(Class<T> type, CouchDbConnector db) {
...
}
Run Code Online (Sandbox Code Playgroud)
这是我的实现:
public class OrderRepository extends CouchDbRepositorySupport<Order<MenuItem>> {
public OrderRepository(CouchDbConnector db) {
super(Order<MenuItem>.class, db);
Run Code Online (Sandbox Code Playgroud)
问题出在Order<MenuItem>.class零件上.Java编译器告诉我:
Syntax error on token ">", void expected after this
Run Code Online (Sandbox Code Playgroud)
我试着用(Order<MenuItem>).class,Order.class并new Order<MenuItem>().getClass()没有更好的运气.
我该怎么做才能检索泛型类的.class属性?
我正在使用jQuery编写Javascript API客户端.我的顶级请求方法如下所示:
function request(method, uri, params, proxies) {
var deferred = $.Deferred();
$.ajax({
data: method == 'GET' ? params : JSON.stringify(params),
contentType: 'application/json',
dataType: 'json',
url: api.root + uri,
type: method,
xhrFields: {
withCredentials: true
}
}).done(function(body) {
deferred.resolveWith(this, [body.data]);
}).fail(function(xhr) {
deferred.rejectWith(this, [xhr]);
});
return deferred.promise();
},
Run Code Online (Sandbox Code Playgroud)
如何fail为返回的延迟提供默认处理程序?也就是说,如果deferred没有附加到其fail条件的其他处理程序,则调用默认处理程序.
我想这样做是为了在我的应用程序中进行全局异常处理,除了具有特定处理的部分(并且将fail在延迟上定义自己的处理程序).
我对此的Google搜索操作未成功,因此出现了以下问题:
我想知道是否可以添加自己的关键字来扩展给定框架中的JavaScript语言。
例如
Object1 extends Object2
Run Code Online (Sandbox Code Playgroud)
在代码中将导致执行此方法
inherit(Object1, Object2)
Run Code Online (Sandbox Code Playgroud)
其中Inherit是一个函数,负责复制原型,添加父级的构造函数等。
这可行吗?如果是这样,怎么办?如果没有,还有其他不错的方法吗?
谢谢。
在Java 1.7.0_21 Java HotSpot(TM)64位服务器VM上运行Leiningen 2.3.4
我无法连接到nREPL服务器.
我使用了一个新项目lein new luminus,然后为drawbridge([com.cemerick/drawbridge "0.0.6"])添加了一个依赖项.
我加了一个处理器路线如下REPL(基于https://devcenter.heroku.com/articles/debugging-clojure):
(def drawbridge-handler
(-> (cemerick.drawbridge/ring-handler)
(wrap-keyword-params)
(wrap-nested-params)
(wrap-params)
(wrap-session)))
(defn wrap-drawbridge [handler]
(fn [req]
(if (= "/repl" (:uri req))
(drawbridge-handler req)
(handler req))))
Run Code Online (Sandbox Code Playgroud)
并添加wrap-drawbridge到我的中间件.
然后我使用启动服务器
lein ring server-headless
连接似乎运行良好,因为执行GET请求会http:localhost:3000/repl产生响应:["[\n","\n]"]
但我无法连接到REPL:
> lein repl :connect 0.0.0.0:3000/repl
Connecting to nREPL at 0.0.0.0:3000/repl
Run Code Online (Sandbox Code Playgroud)
并且,过了一段时间:
SocketException The transport's socket appears to have lost its connection to the nREPL server
clojure.tools.nrepl.transport/bencode/fn--4287/fn--4288 (transport.clj:95)
clojure.tools.nrepl.transport/bencode/fn--4287 (transport.clj:95) …Run Code Online (Sandbox Code Playgroud) ember文档说明finallyPromises上有一个处理程序:
http://emberjs.com/api/classes/Ember.RSVP.Promise.html#method_finally
但是,使用finally承诺产生Uncaught TypeError: undefined is not a function(http://jsfiddle.net/XawmE/).
Ember文档是错的吗?我错过了什么吗?
在javascript中,有什么区别:
var singleton = function(){ ... }
Run Code Online (Sandbox Code Playgroud)
和
var singleton = new function(){ ... }
Run Code Online (Sandbox Code Playgroud)
?
声明crockford(http://www.crockford.com/javascript/private.html)所描述的特权功能仅适用于后者.
我有一个典型ArrayController/ ObjectController设置如下:
App.PlayersController = Ember.ArrayController.extend({
itemController: 'playerItem',
visibleCount: function(){
//How do I compute this property?
}.property(...),
});
App.PlayerItemController = Ember.ObjectController.extend({
needs: 'players',
visible: function(){
...
}).property('...')
})
Run Code Online (Sandbox Code Playgroud)
该visible物业是在电脑上PlayerItemController,但我希望有从可见玩家的全局计数visibleCount的PlayersController.我该如何实现这一目标?
这是我尝试过的:
visibleCount: function(){
return this.get('content').filter(function(p){
return p.get('visible')
}).length;
}.property('content.@each.visible'),
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为每次都p.get('visible')返回undefined并且属性返回0.
我定义了两个函数如何相互继承,如下所示:
Function.prototype.inherit = function(parent){
function proto() {}
proto.prototype = parent.prototype;
this.prototype = new proto();
this.prototype.constructor = this;
this.prototype.parent = parent;
Run Code Online (Sandbox Code Playgroud)
}
然后我需要定义一个isInstance函数,它的行为类似于Java的instanceOf或PHP的instanceof.实质上,isInstance可用于确定变量是否是从父函数继承的函数的实例化对象.
这就是我写的:
Function.prototype.isInstance = function(func){
if(this == func){
return true;
} else{
if (this.prototype.parent == undefined || this.prototype.parent == null) {
return false;
} else {
return this.prototype.parent.isInstance(func);
}
}
Run Code Online (Sandbox Code Playgroud)
}
这在比较两个函数时工作正常,但在比较实例化变量时则不行.
Object2.inherit(Object1);
Object2.isInstance(Object1); //returns true
var obj2 = new Object2();
obj2.isInstance(Object1);// obj2.isInstance is not a function
Run Code Online (Sandbox Code Playgroud)
上面的最后一个案例是我想要的工作.如何将isInstance添加到实例,而不仅仅是函数?对于那里的所有javascript专家,我的代码是否有任何改进(继承方法,也许)?
谢谢.
javascript ×5
ember.js ×2
clojure ×1
ektorp ×1
feasibility ×1
generics ×1
inheritance ×1
instanceof ×1
java ×1
jquery ×1
leiningen ×1
nrepl ×1
promise ×1