小编jon*_*rry的帖子

我用什么设置xcode-select -switch?

我正试图通过以下方式在macos mountain lion上安装八度:

sudo port install octave
Run Code Online (Sandbox Code Playgroud)

但是,此命令的结果始终如下:

Error: 
Error: No valid Xcode installation is properly selected.
Error: Please use xcode-select to select an Xcode installation:
Error:     sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer # version 4.4
Error: 
Run Code Online (Sandbox Code Playgroud)

我尝试了建议的sudo xcode-select -switch命令无济于事.始终会出现相同的错误.任何想法如何解决这个问题?

xcode osx-mountain-lion

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

从 scala LinkedHashMap 中删除最旧的条目

我正在尝试使用 scalaLinkedHashMap作为 LRU 缓存,但我不确定如何删除此类映射的最旧条目。我知道javaLinkedHashMap有一个方法removeEldestEntry,但scala的实现似乎没有类似的方法。我不想仅仅为了访问removeEldestEntry. 我怎样才能实现这个目标?

scala scala-collections

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

使用maven程序集插件将多个jar集合到一起时处理冲突的文件

我遇到了一个问题,我在项目中包含了一些第三方罐子,而第三方罐子在jar文件的根目录中都有相同名称的配置文件.当我使用时执行mvn package构造一个jar(用于部署)时maven-assembly-plugin,生成的jar文件只在根目录中包含一个配置文件,并且它只包含其中一个配置文件的内容.然后,当我从"超级jar"运行我的应用程序时,由于缺少配置而发生错误.我认为使用maven-shade-plugin会有所帮助,因为它似乎支持连接这些文件,但这种方法不起作用(冲突的文件没有附加,而且我收到了关于以前没有发生的重复导入apache commons库的新警告).

以最自动和可维护的方式处理此问题的最佳方法是什么?

maven

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

在perl中找到正则表达式匹配的所有可能的起始位置,包括重叠匹配?

有没有办法在perl中找到正则表达式匹配的所有可能的起始位置?

例如,如果你的正则表达式是"aa"而文本是"aaaa",它将返回0,1和2,而不是0和2.

显然,你可以做一些事情,比如返回第一个匹配,然后删除所有字符,包括该起始字符,并执行另一个搜索,但我希望有更高效的东西.

perl

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

为什么git rebase --onto ab,git rebase --onto ba创建了与原始版本不同的SHA1?

假设您有以下修订图,c为当前分支:

c   a
 \ /
  b
Run Code Online (Sandbox Code Playgroud)

git rebase --onto a b 创建以下内容:

    c
   /
  a
 /
b
Run Code Online (Sandbox Code Playgroud)

并且git rebase --onto b a返回到图:

c   a
 \ /
  b
Run Code Online (Sandbox Code Playgroud)

但是,在两次重组之前,c的新SHA1与c的旧SHA1不同.为什么会这样?

git

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

在java中将返回类型作为参数传递?

我有一些包含对象日志的文件。每个文件可以存储不同类型的对象,但单个文件是同构的——它只存储单一类型的对象。

我想编写一个方法来返回这些对象的数组,并使该数组具有指定类型(文件中的对象类型是已知的并且可以作为参数传递)。

粗略地说,我想要的是以下内容:

public static <T> T[] parseLog(File log, Class<T> cls) throws Exception {
    ArrayList<T> objList = new ArrayList<T>();
    FileInputStream fis = new FileInputStream(log);
    ObjectInputStream in = new ObjectInputStream(fis);
    try {
        Object obj;
        while (!((obj = in.readObject()) instanceof EOFObject)) {
            T tobj = (T) obj;
            objList.add(tobj);
        }
    } finally {
        in.close();
    }
    return objList.toArray(new T[0]);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码不能编译(返回语句有错误,演员表有警告),但它应该让你知道我想要做什么。有关执行此操作的最佳方法的任何建议?

java

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

从命令行打印正则表达式的所有匹配项?

在unix命令行上将所有匹配(每个匹配一行或每行输入一行)打印到正则表达式的最简单方法是什么?请注意,每行输入可能有0个或多个匹配.

我假设必须有一些方法可以使用sed,awk,grep和/或perl来实现这一点,我希望有一个简单的命令行解决方案,以便将来在需要时显示在我的bash历史记录中.

编辑:澄清一下,我不想打印所有匹配的行,只打印正则表达式的匹配.例如,一行可能有1000个字符,但正则表达式只有两个10个字符的匹配项.我只对这两个10个字符的比赛感兴趣.

regex perl grep

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

将案例类的伴随对象用作类型参数时编译错误

我使用case类创建了一些用于在scala中喷涂的json消息.例如:

  case class Foo(name: String, attrs: List[String])
  implicit val fooFormat = jsonFormat2(Foo)
  object Foo {
    case class Invalid(error: String)
  }
  case class Bar(name: String, kv: Map[String, String])
  implicit val barFormat = jsonFormat2(Bar)
Run Code Online (Sandbox Code Playgroud)

在上面的代码片段中,barFormat编译但fooFormat不是:

type mismatch; found : Foo.type required: (?, ?) => ? 
 Note: implicit value barFormat is not applicable here because it comes 
 after the application point and it lacks an explicit result type
Run Code Online (Sandbox Code Playgroud)

我不想barFormat代替使用fooFormat,并且我理解case类自动生成一个伴随对象,但是我不明白为什么这里有编译器错误,并且我很难解释错误消息.有谁知道这里的问题是什么以及如何解决它,最好不要删除我的Foo伴侣对象?

scala spray

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

可运行的非最终字段是否不安全以提交给执行者?

如果我有以下代码:

  public void foo() {
    Executors.newSingleThreadedExecutor().submit(
      new Runnable() {
        int x = 5;
        public void run() {
          System.out.println("x = " + x);
        }
      }
    );
  }
Run Code Online (Sandbox Code Playgroud)

我保证看到"x = 5",或者我也可以看到"x = 0",因为它println是在一个可能看到未初始化值的不同线程中执行的x?我从来没有目睹过这种情况,但我一直无法保证不会发生这种情况(例如,如果xfinal,那么它似乎永远不会发生).

java concurrency

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

golang select语句中case与default的优先级

我有一个运行for循环的多个goroutine应用程序,需要一种方法来指示这些for循环中断,并测试是否发生了超时情况.我正在考虑使用带select语句的共享通道来完成此操作,如下所示:

// elsewhere in the code, this channel is created, and passed below
done := make(chan struct{})
time.AfterFunc(timeout, func() { close(done) })
...
go func() {
Loop:
  for {
    select {
    case <-done:
      break Loop
    default:
      foo()
      time.Sleep(1 * time.Second)
    }
  }
  select {
  case <-done:
    panic("timed out!")
  default:
    // ok
  }
}()
Run Code Online (Sandbox Code Playgroud)

这是实现这一目标的有效方法吗?我最关心的select是所选择的分支可能是非确定性的,因此default即使其中一个case已经准备就可以选择.这可能吗?是否有任何文档声明匹配case保证优先于a default.关注的是,done即使发生超时,上面的for循环也可以在关闭后循环几次和/或报告成功.

go

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

标签 统计

java ×2

perl ×2

scala ×2

concurrency ×1

git ×1

go ×1

grep ×1

maven ×1

osx-mountain-lion ×1

regex ×1

scala-collections ×1

spray ×1

xcode ×1