小编Leo*_*Leo的帖子

如何将工厂方法添加到Scala中的现有Java类

在纯Scala环境中,如果我想将工厂方法"添加"到现有对象,我可以执行以下操作:

object Test

object Extensions {

    object RichTest {
        def someFactory = new Test()
    }
    implicit def fromTest(t: Test.type) = RichTest

}

...

import Extensions._
val t = Test.someFactory
Run Code Online (Sandbox Code Playgroud)

我需要将这样的功能与现有的Java类结合使用.在我的具体的例子,我想一个工厂方法添加fromLocation到类com.google.android.maps.GeoPoint(和我想每一个Android开发者就会知道为什么这将是有益的;-)).

但是,如果我尝试做类似的事情

implicit def fromGeoPoint(t: GeoPoint.type) = RichTest
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说明

类型不匹配; 发现:com.google.android.maps.GeoPoint.type(底层类型对象为com.google.android.maps.GeoPoint)必需:AnyRef

所以我想知道是否有任何方式可以实现上述方法 - 或者提供隐式转换Location是否GeoPoint是Scala中的首选方式,因此Location可以在GeoPoint需要时使用?


根据评论中的要求,使用场景:

// Callback you get from the GPS
override def onLocationChanged(l: Location) {
    // You want to put a marker on a map, hence a …
Run Code Online (Sandbox Code Playgroud)

java scala implicits

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

如何在Seaside回调中访问jQuery事件对象

基本上,我想将以下内容翻译成Seaside Smalltalk:

$(".myDiv").bind('click', function(e) {
    console.log(e);
}); 
Run Code Online (Sandbox Code Playgroud)

除此之外,我不想参加console.log活动,而是在我的ajax回调中访问它.

最有希望的方法似乎是这样的

html div
    onClick: (html jQuery ajax callback: [:v | self halt] value: (???);
    with: 'Foo'.
Run Code Online (Sandbox Code Playgroud)

但我找不到任何方法来访问导致回调的事件.直观地说,我会尝试

html jQuery this event
Run Code Online (Sandbox Code Playgroud)

对于该???部分,但Seaside jQuery包装器不知道任何接近的消息event.

任何帮助表示赞赏.必须要去访问事件数据......

ajax jquery events smalltalk seaside

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

找不到类型为java.util.Date的Json反序列化器

我正在研究以下代码行.

val list = Car.getNames()
Ok(Json.toJson(list))
Run Code Online (Sandbox Code Playgroud)

我有以下错误....

[error] my_app/app/models/Car.scala:51:找不到类型为java.util.Date的Json反序列化程序.尝试为此类型实现隐式读取或格式.

Carjava.util.date对象作为参数之一,我实现了Reads and Writes来支持该java.util.date对象,因为import play.api.libs.json.*它不支持它.

你会指出我的错误吗?

implicit object CarFormat extends Format[Car] {

    def reads(json: JsValue): Car = Car(
      (json \ "id").as[Long],
      (json \ "height").as[Double],
      (json \ "weight").as[Double],
      (json \ "date").asOpt[java.util.Date]
    )   

    def writes(car: Car) = 
        JsObject(
            Seq(
                "id" -> JsString(car.id.toString),
                "height" -> JsString(car.height.toString),
                "weight" -> JsString(car.weight.toString),
                "date" -> JsString(car.date.toString)
            )   
        )   
}   
Run Code Online (Sandbox Code Playgroud)

scala playframework

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

如何以字节数组的形式访问Request [_]的主体

只要在定义Action时使用适当的主体解析器,就可以直接访问请求体的字节数组request.body.asRaw....

但是,我现在正在建立一个ActionBuilder针对HMAC安全的行动,在那里进入身体是不可避免的.问题是ActionBuilders的定义在请求类型方面是通用的,因此也是主体解析器的定义:

def invokeBlock[A](request: Request[A], block: HmacRequest[A] => Future[SimpleResult])
Run Code Online (Sandbox Code Playgroud)

由于A没有任何类型约束,似乎没有任何方法可以从a访问请求体Request[_].

在我的具体情况下,它可以做以下事情:

request.body.asInstanceOf[AnyContentAsJson].json.toString()...
Run Code Online (Sandbox Code Playgroud)

但这对我来说不是一个可以接受的解决方案.

我也尝试定义一个自定义的身体解析器并将其应用到Request[_],但结果是空的.

如何访问a的主体Request[_](字节数组表示就足够了)?


更新:如果我可以访问其中的请求主体ActionBuilder,例如通过将整个处理包装在另一个执行自定义解析的操作中,它也是一个可接受的解决方案.但是我没有看到它是如何工作的......解决方案应该是可重用的,因为任意用户定义的动作可以与HMAC功能一起使用,而不会干扰任何用户逻辑.

scala playframework playframework-2.2

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

将 Google Cloud Functions 与 registry.npmjs.org 以外的注册表一起使用

我目前正在尝试使用来自 GitHub 包注册表 (npm.pkg.github.com) 的(私有)包部署 node.js 云函数。

根据此处的官方文档,通过添加带有访问令牌的 .npmrc 文件来支持使用私有模块,但是没有提及使用自定义注册表。

我与 package.json 和其余代码一起上传到 Cloud Functions 的 .npmrc 如下所示:

registry=https://npm.pkg.github.com/<myorg>
//npm.pkg.github.com/:_authToken=<mytoken>
Run Code Online (Sandbox Code Playgroud)

但是,由于以下原因部署失败:

Build failed: {"error": {"canonicalCode": "INVALID_ARGUMENT", "errorMessage": "`npm_install` had stderr output:
npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/<mypackage> - Not found
npm ERR! 404 
npm ERR! 404 '<mypackage>' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
Run Code Online (Sandbox Code Playgroud)

如您所见,.npmrc 中的注册表定义似乎被忽略了,因为它试图从 npmjs.org …

npm google-cloud-platform google-cloud-functions

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

如何在delphi中执行javascript?

我正在编写一个小应用程序,在中间我打了一些点我必须执行javascript来获取我的数据?

在我的过程中,我必须登录到一些网址,然后转到某个页面,必须从中获取数据.我用indy idhttp做了所有这些,除了一个需要javascript才能获得价值的专栏以外我得到了所有信息,然后我尝试使用twebbowser让它适合我,但我怎样才能使用cookies启用webbrowser?

我导航了browserto(' http://mysite.com/login.php用户并通过'),好了它的插入然后我试图访问下一个链接(' http://mysite.com/link1/example.php ')但它指向登录页面:(

任何帮助赞赏:)

javascript browser delphi

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

并发控制

您好
我想知道在3层应用程序中实现并发控制的最佳方法吗?可能首先想到的是:

  1. 客户想要编辑数据集中的记录.
  2. 向服务器发送请求,要求锁定该记录
  3. 服务器根据锁表接受/拒绝编辑请求

根据这种情况,锁应该引用锁定的记录和使用该记录的客户端.
客户端必须定期向服务器发送保持活动消息.保持活动用于释放锁定的记录,以防我们在编辑操作的混乱中丢失客户端.

我将使用Delphi与datasnap.也许这是一个新手问题,但我不得不问!

delphi datasnap

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

用PHP学习OO

我已经开始学习OO编程,但是在" PHP 5对象,模式和实践 "一书的帮助下使用PHP语言.问题是我希望学会同时使用CakePHP框架,它使用了很多MVC模式.因为我对OO知之甚少,而对MVC的了解不多,我希望了解后者,但我用OO知识做出的假设可能会对长期产生不良影响.

有没有人知道一个关于什么意味着MVC的好教程(比cakephp手册说的更多,但比维基百科更容易阅读/理解)?

TY

php oop model-view-controller cakephp

6
推荐指数
2
解决办法
6881
查看次数

在iOS中使用ARC进行dealloc的单元测试

我想为一个dealloc方法编写iOS单元测试,该方法(基本上)将对象作为另一个对象的委托删除.

- (void) dealloc {
    someObject.delegate = nil;
}
Run Code Online (Sandbox Code Playgroud)

但是,dealloc在使用ARC时我无法直接呼叫.编写单元测试的最佳方法是什么?

unit-testing objective-c ios automatic-ref-counting

6
推荐指数
2
解决办法
2481
查看次数

使用Git和Eclipse管理Android项目

我相信我有一个非常普遍的问题会影响开发者的多个版本的应用程序(在我的情况下,我有两个:付费一个和免费的).要管理这两个版本,我使用相同的git项目和2个不同的分支:free和paid但是我的源代码包名称彼此不同(正如预期的那样),并且java限制使目录名称映射到包名称时出现问题:如何告诉git将某个目录下的文件与每个分支相关联?

让我举个例子:我有两个分支:

  1. 自由

在master中我的源代码在com.zemariamm下,但是在"free"分支中源代码在"com.zemariamm.free"下,如何配置git以"告诉他"目录com.zemariamm下的源代码(在分支主机中)映射到目录com.zemariamm.free下的源代码(在分支机构中)?

非常感谢,Ze

java eclipse git

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