小编jd.*_*jd.的帖子

检索泛型类的.class属性

我试图用构造函数(来自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.classnew Order<MenuItem>().getClass()没有更好的运气.

我该怎么做才能检索泛型类的.class属性?

java generics ektorp

6
推荐指数
1
解决办法
3415
查看次数

为jQuery延迟对象提供默认的"fail"方法

我正在使用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在延迟上定义自己的处理程序).

javascript jquery jquery-deferred

6
推荐指数
1
解决办法
1050
查看次数

用关键字扩展JavaScript

我对此的Google搜索操作未成功,因此出现了以下问题:

我想知道是否可以添加自己的关键字来扩展给定框架中的JavaScript语言。

例如

Object1 extends Object2
Run Code Online (Sandbox Code Playgroud)

在代码中将导致执行此方法

inherit(Object1, Object2)
Run Code Online (Sandbox Code Playgroud)

其中Inherit是一个函数,负责复制原型,添加父级的构造函数等。

这可行吗?如果是这样,怎么办?如果没有,还有其他不错的方法吗?

谢谢。

javascript language-features feasibility

5
推荐指数
2
解决办法
1393
查看次数

连接到具有ring/compojure的clojure nREPL的问题

在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)

clojure leiningen read-eval-print-loop nrepl

4
推荐指数
1
解决办法
2620
查看次数

Ember Promises终于错过了处理程序?

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 promise ember.js

2
推荐指数
1
解决办法
1072
查看次数

使用new运算符初始化单例javascript对象?

在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)所描述的特权功能仅适用于后者.

javascript

1
推荐指数
1
解决办法
909
查看次数

Ember:数组控制器中的属性,根据项目控制器的属性计算

我有一个典型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,但我希望有从可见玩家的全局计数visibleCountPlayersController.我该如何实现这一目标?

这是我尝试过的:

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.

ember.js

1
推荐指数
1
解决办法
1709
查看次数

在Javascript中实现isInstance

我定义了两个函数如何相互继承,如下所示:

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 inheritance instanceof

0
推荐指数
1
解决办法
2244
查看次数