小编Jus*_*s12的帖子

XMPP服务器名称和XMPP服务名称之间的区别?

在Smack API中,有一个用于连接的配置类,在此页面中进行了描述

ConnectionConfiguration

我对服务名称和服务器名称之间的区别感到困惑.

假设我有一台名为"mybox.mydomain.com"的计算机,我在ejabberd上配置了一个名为"myhost"的主机(使用{hosts, ["myhost"]}.ejabbed.cfg中的行),

在这种情况下,主机名,服务器名称和服务名称是什么?

xmpp openfire ejabberd smack

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

如何在分发库Jars时包含scala代码的javadoc?

这个问题与从java代码调用scala代码有关.

当我包含一些scala库(jar格式)时,返回类型通常是类型scala.collection和其他Scala类型.

使用scala库在Java(在Netbeans中)进行开发时,在尝试查看Scala类型的文档时会出现以下"错误".

Javadoc not found. Either Javadoc documentation for this item does not
exist or you have not added specified Javadoc in the Java Platform Manager
or the Library Manager.

在分布式jar中包含javadocs(我的代码和scala-library)的最佳方法是什么?

java javadoc scala

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

如何生成字节码并保存到.class文件?

我有以下奇怪的要求.

我给了:

  1. 一些方法名称的列表.
  2. 上述方法的名称和参数类型.
  3. 上述方法的功能.具体如下:对于每个参数,该方法将其转换为字符串使用toString并获取字符串数组.对于该数组,该方法应用函数foo.该函数foo作为输入一个String []类型和输出String.方法返回返回的内容foo. foo代码在Java对象中给出,并作为黑盒访问.

1.和2.中的信息可以是文本或XML文件.为此,我们可以认为它以我们选择的任何方式在Java对象中可用.

任务是创建一个.class实现这些方法的文件(即字节码),并且可以在JVM上运行.

我认为这个汇编程序库是一种方法.谁能建议一个更简单的方法?

[编辑:]我可以想到另一种方式:首先生成.java文件,然后编译它以获取.class文件.

[上下文:]我必须为数百种方法执行此操作.我想要快捷方式,这样我就可以自动完成工作而不是手动编写代码.

java reflection bytecode

8
推荐指数
2
解决办法
5574
查看次数

Scala 2.8正确处理Boolean和java.lang.Boolean?

考虑以下:

scala> val a:java.lang.Boolean = true
a: java.lang.Boolean = true

scala> val b = true
b: Boolean = true

scala> a == b
res4: Boolean = true

scala> b == a
<console>:8: warning: comparing values of types Boolean 
and java.lang.Boolean using `==' will always yield false
       b == a
         ^
res5: Boolean = true
Run Code Online (Sandbox Code Playgroud)

警告说它会屈服false但会产生收益true.

Scala 2.8.

scala scala-2.8

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

如何以自动方式获取给定字节码位置的Java源代码?

我正在尝试一种进行静态分析的工具.该工具适用于字节码而不是源代码.(但是,我也有源代码).

该工具从字节码输出一些行号,现在我需要一种简单的方法来映射回源代码.Netbeans/Eclipse一直这样做(当我点击包含库中的方法时,IDE会将我带到源(如果可用的话)),所以我知道这是可能的.我只是想办法做到这一点.

作为示例,请考虑以下hello world程序:

package mypackage;
import java.io.*;
class MyMainClass {
  public static void main(String[] args) { 
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
    String name0 = "Alice";
    String name1 = "Bob";
    try {
        name0 = in.readLine();
    }
    catch(Exception e) {
        System.out.println("Caught an exception!"); 
    }       
    System.out.println("Hello " + name0 + "!"); 
    System.out.println("Hello " + name1 + "!"); 
  }
}
Run Code Online (Sandbox Code Playgroud)

生成的字节码(从javap获得)是:

Compiled from "MyMainClass.java"
class mypackage.MyMainClass extends java.lang.Object{
mypackage.MyMainClass();
  Code:
   0:   aload_0
   1:   invokespecial   #1; //Method java/lang/Object."<init>":()V
   4:   return

public static void …
Run Code Online (Sandbox Code Playgroud)

java bytecode

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

如何在BNF中表示否定?

BNF或ABNF是否支持否定.那是否排除了某些成员?我的语法中没有看到任何这样的否定运算符.

例如,假设S是集所有字母数字串即是不相等的,以"foo" 什么的BNF S

grammar parsing bnf ebnf

8
推荐指数
2
解决办法
1967
查看次数

如何在case类中定义自定义相等

我有一个案例类Foo定义如下.我想覆盖其中的行为==,以便optBar在比较中忽略最后一个元素().这是我尝试过的,似乎有效.

case class Bar(i:Int)
case class Foo(i:Int, s:String, optBar:Option[Bar]) {
    override def equals(o:Any) = o match {
        case Foo(`i`, `s`, _) => true
        case _ => false
    }
    override def hashCode = i.hashCode*997  ^ s.hashCode * 991
}
val b = Bar(1)
val f1 = Foo(1, "hi", Some(b))
val f2 = Foo(1, "hi", None)
f1 == f2 // true
Run Code Online (Sandbox Code Playgroud)

我想知道的是创建方法hashCode是否正确.我从这个链接得到了它.

scala

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

Scala中的结构类型:在细化中使用抽象类型

说我有以下代码:

class Bar { def bar(b:Bar):Boolean = true }
def func(b:Bar) = b.bar(b)    
Run Code Online (Sandbox Code Playgroud)

以上工作正常.该类Bar在第三方库中定义,并且有几个类似的类,每个类都有一个bar方法

class Foo { def bar(f:Foo):Boolean = false }
Run Code Online (Sandbox Code Playgroud)

func我想要定义func使用泛型类型B ,而不是为每个这样的类编写,只要它有一个bar正确签名的方法.

我尝试了以下但它给了我一个错误:

def func[B <: {def bar(a:B):Boolean}](b:B) = b.bar(b) // gives error
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

<console>:16: error: Parameter type in structural refinement may not refer to 
an abstract type defined outside that refinement
def func[B <: {def bar(a:B):Boolean}](b:B) = b.bar(b)
                       ^
Run Code Online (Sandbox Code Playgroud)

但是,如果我执行以下操作,方法定义仍然有效,但调用会产生错误:

def func[B <: {def bar(a:Any):Boolean}](b:B) = b.bar(b) …
Run Code Online (Sandbox Code Playgroud)

scala structural-typing

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

在顺序块中读取非常大的文件(~1 TB)

我需要在Scala中读取一个大文件并以k位为单位处理它(k通常可以是65536).作为一个简单的例子(但不是我想要的):

文件块是(f1, f2, ... fk).

我想计算 SHA256(f1)+SHA256(f2)+...+ SHA256(fk)

这种计算可以仅使用恒定存储和当前块递增地完成,而不需要其他块.

阅读文件的最佳方法是什么?(也许是使用延续的东西?)

编辑:链接的问题解决了问题但不总是,因为我正在查看的文件包含二进制数据.

scala large-files

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

这是scala 2.9.0.1 actor库中的一个错误

以下代码在Scala 2.8中工作正常,但在2.9.0.1中没有(在REPL中复制和粘贴).这将在2.9.0.1中引发异常.

import scala.actors.Actor
import scala.actors.TIMEOUT

object A2 extends Actor {
  def act = {
    loop {
      react {
        case "hello" => 
          val s = sender 
          reactWithin(2000){
            case i:Int => s ! "hello"
            case TIMEOUT => s ! "TIMEOUT"
          }
        case _ => 
      }
    }
  }
}

object A1 extends Actor {
  def act = {
    loop {
      react {
        case m:String => println (A2 !? (1000, m))
        case _ =>
      }
    }
  }
}

A1.start
A2.start

A1 ! "hi" …
Run Code Online (Sandbox Code Playgroud)

scala scala-2.9

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