小编min*_*ief的帖子

Groovy中的HTTP客户端库

我对使用Groovy查询REST API感兴趣.我发现HttpURLClient似乎应该做我想要的,但Groovy Console抱怨"无法解析类HttpURLClient"我发现这个链接有HttpURLClient的示例代码:http://groovy.codehaus.org/modules/http-builder /doc/httpurlclient.html

但是复制粘贴代码会产生同样的错误.

我也研究过使用HTTPBuilder,它看起来似乎也可以工作,但也有类似的错误.

知道我需要做些什么来让这些工作?

谢谢

groovy http

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

球拍对象的唯一标识符?

有没有办法在球拍中获取对象的唯一标识符?例如,当我们使用Racket的eq?运算符检查两个变量是否引用相同的对象时,使用哪个标识符进行比较?

我正在寻找类似python的id函数或Ruby的object_idmethod之类的东西,换句话说,就是这样的某个函数id,这(= (id obj) (id obj2))意味着它(eq? obj obj2)是正确的。

一些相关文档:

对象标识和比较

变量和位置

racket

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

在 Racket 中打包关键字参数?

有没有一种方法可以将函数的关键字参数指定为字典,类似于.允许我们提供位置参数列表的方法?我正在寻找类似于 python 的*args 和 **kwargs的东西。

更详细地说

如果我们想在函数中处理任意数量的位置参数,我们可以这样定义它:

(define (my-add . args)
  (apply + args))
Run Code Online (Sandbox Code Playgroud)

并将其与可变数量的参数一起使用,如下所示:

(define numbers '(1 2 3))
(apply my-add numbers) ;=> 6
(define numbers '(1 2 3 4 5))
(apply my-add numbers) ;=> 15
Run Code Online (Sandbox Code Playgroud)

即使对于没有通过.语法显式处理位置参数的“其余”部分的函数,我们也可以使用它apply从列表中解包位置参数。

(apply expt '(2 3)) ;=> 8
Run Code Online (Sandbox Code Playgroud)

我发现除了位置参数之外,apply 它还转发关键字参数。但是,只有当调用的函数本身标识了它所期望的特定关键字参数时,这才有效。例如,在分派情况下,函数本身不使用关键字参数,而只是打算将它们转发到某个适当的处理程序,以这种方式使用 apply 并不能满足我们的需要,因为函数需要了解其分派到的任何函数接受的所有关键字参数,更不用说在调用处理程序之前以某种方式重新打包它们了。

作为说明该问题的具体示例,请考虑一个简单的“echo args”函数,该函数会回显传递给它的所有参数:

(define (echo-args . args)
  (printf "~a" args))
Run Code Online (Sandbox Code Playgroud)

仅使用位置参数:

> (echo-args 1 2 5)
(1 2 5)
Run Code Online (Sandbox Code Playgroud)

使用关键字参数:

> …
Run Code Online (Sandbox Code Playgroud)

keyword-argument argument-unpacking racket

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

了解Java中的JAR和包

我试图了解jar和jar如何在Java中工作.所以为了做到这一点,我创建了一个简单的测试JAR,并尝试使用该jar中包含的类.很简单,但它给我的错误,如"找不到课".这是设置:

1)我有一个名为MyHelloWorld.java的文件,它将打包在一个JAR中:

package com.mytest;

public class MyHelloWorld {
    public String getHello() {
        return "Hello";
    }
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}
Run Code Online (Sandbox Code Playgroud)

2)我有另一个名为'HelloHello.java'的文件,该文件使用getHello()com.mytest.MyHelloWorld中的函数

import com.mytest.*;

public class HelloHello {
    public static void main (String[] args) {
        MyHelloWorld hello = new MyHelloWorld();
        System.out.println(hello.getHello());
    }
}
Run Code Online (Sandbox Code Playgroud)

3)要将MyHelloWorld类打包到JAR中,我com/mytest在当前目录中创建了文件夹,并将MyHelloWorld.java移动到该文件夹

4)我在该文件夹中编译了MyHelloWorld.java javac MyHelloWorld.java

5)我jar -cf myhello.jar ./com/mytest/*.class从根文件夹运行以创建JAR文件(如http://www.javacoffeebreak.com/faq/faq0028.html中所述)

6)我将HelloHello.java和myhello.jar复制到一个没有其他内容的新文件夹中,以测试此设置

7)javac -cp ./*.jar HelloHello.java[成功]

8)java -cp ./*.jar HelloHello[FAILS](我也尝试过`java HelloWorld',它也失败了,带有不同的错误信息)

最后一条语句失败并显示以下消息:

$java -cp …
Run Code Online (Sandbox Code Playgroud)

java packages jar

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