小编Dan*_*ner的帖子

使用分隔符拆分字符串

我目前正在尝试拆分一个字符串,1128-2以便我可以有两个单独的值.例如,value1:1128和value2:2,这样我就可以分别使用每个值.我试过split()但没有成功.Grails是否有特定的处理方式,或者更好的方法呢?

string groovy split

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

Scala Map实现按插入顺序保留条目?

在Java中,我LinkedHashMap用于此目的.Java的文档LinkedHashMap很清楚,它具有"可预测的迭代顺序",我在Scala中需要相同的东西.

Scala有ListMapLinkedHashMap,但他们这样做究竟是什么文件很糟糕.

问题:Scala LinkedHashMapListMap实现是否用于此目的?如果没有,除了LinkedHashMap直接使用Java之外还有哪些其他选项?

scala scala-2.8 scala-collections ordered-map

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

如何使用Jenkins Pipeline Groovy脚本检索当前工作区?

我试图使用Groovy管道脚本获取我的Jenkins构建的当前工作区:

node('master') {
    // PULL IN ENVIRONMENT VARIABLES
    // Jenkins makes these variables available for each job it runs
    def buildNumber = env.BUILD_NUMBER
    def workspace = env.WORKSPACE
    def buildUrl = env.BUILD_URL

    // PRINT ENVIRONMENT TO JOB
    echo "workspace directory is ${workspace}"
    echo "build URL is ${env.BUILD_URL}"
}
Run Code Online (Sandbox Code Playgroud)

它返回:

[Pipeline] Allocate node : Start
Running on master in /Users/Shared/Jenkins/Home/jobs/test/workspace
[Pipeline] node {
[Pipeline] echo
workspace directory is null
[Pipeline] echo
build URL is http://localhost:8080/job/test/5/
[Pipeline] } //node
[Pipeline] Allocate node : …
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-pipeline

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

Guice注入空指针

我们尝试用Guice重构一个项目.我们的想法是将所有语言界面绑定到一个像法语波兰语这样的混合对象.

我们有一个绑定模块:

public class StandardModule extends AbstractModule {

    @Override
    protected void configure() {

       bind(Language.class).to(Polish.class);

    }
 }
Run Code Online (Sandbox Code Playgroud)

以及使用此注入对象的classe(AboutDialog.java):

@Inject Language language;

public AboutDialog(JFrame parent) {
    super(parent, "", true);
    this.language=language;
    this.setTitle(language.getLanguageInUse().getString("AboutDialog.title"));
    this.parent = parent;
    try {
        jbInit();
    } catch (Exception e) {
        e.printStackTrace();
    }
    pack();
}
Run Code Online (Sandbox Code Playgroud)

我们有结果:

java.lang.NullPointerException at net.sf.jmoney.gui.AboutDialog.<init>(AboutDialog.java:67)
Run Code Online (Sandbox Code Playgroud)

第67行是:

this.setTitle(language.getLanguageInUse().getString("AboutDialog.title"));
Run Code Online (Sandbox Code Playgroud)

我们的界面是:

public interface Language {

    public ResourceBundle getLanguageInUse();
}
Run Code Online (Sandbox Code Playgroud)

波兰语课程是:

public class Polish implements Language {

    private ResourceBundle languageInUse;

    public Polish() {
        languageInUse = …
Run Code Online (Sandbox Code Playgroud)

java guice code-injection nullpointerexception

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

如何在Scala中使用字符串插值格式化字符串作为固定宽度字符串?

我正在与一个非常古老的系统连接,我需要生成的文件需要一个由字符串组成的字段,但需要正好是15个宽度.

我想要这样的东西:

val companyName = "FooBar, Inc" // 11 chars
f"$companyName%s"
Run Code Online (Sandbox Code Playgroud)

回来:

"    FooBar, Inc"
Run Code Online (Sandbox Code Playgroud)

是否有一种灵巧的方式来做我正在尝试使用字符串插值?

scala padding string-interpolation format-string scala-2.10

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

如何在应用程序中访问Play Framework 2.4 guice Injector?

我想在Play Framework 2.4中使用getInstanceGuice Injector类的方法,我该如何访问它?

我已经使用Guice FactoryModuleBuilder实现了一个在运行时返回另一个工厂的工厂!在返回工厂的第二级,我需要访问Play Guice Injector以使用反射而不是@Inject注释来手动获取对象.

java scala guice playframework playframework-2.0

9
推荐指数
4
解决办法
7041
查看次数

如何更改Play Framework 2"测试"设置以显示完整的堆栈跟踪?

我在Play框架中使用Java,并且我在通过IDE(IntelliJ)运行时通过了一些测试(功能测试),但是当我通过控制台运行测试时失败了.

我的问题是测试日志中显示的堆栈跟踪只有2行,我需要完整的堆栈跟踪来查看那里发生了什么,我尝试了这里提到的任何设置组合:spec2设置都通过放置它们在build.sbt命令行中或在命令行中提供它们.似乎没有效果!这是我的build.sbt:


version := "1.0-SNAPSHOT"

libraryDependencies ++= Seq(
  javaJdbc,
  javaEbean,
  cache,
  filters
)     

logBuffered in Test := false

testOptions += Tests.Argument(TestFrameworks.JUnit, "-v")

testOptions += Tests.Argument("fullStackTrace","true")

traceLevel := 50
Run Code Online (Sandbox Code Playgroud)

有谁可以帮助我吗?我正在使用Typesafe激活器(播放2.2.2).谢谢

java testing stack-trace playframework playframework-2.0

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

IntelliJ 快捷键和键盘布局

我最近购买了一台安装了 GNU/Linux (Arch Linux) 的 HP Spectre 13。然后我安装了 IntelliJ。一切似乎都很好,直到我尝试了快捷方式。

我在 AZERTY 键盘上。我配置了系统布局,以便我可以享受正确的布局,即当我输入字母“a”时,我得到了一个“a”,依此类推。但是,使用 IntelliJ,在键入文本时,识别的键盘布局是“azerty”,但使用快捷方式,IntelliJ 会识别“qwerty”布局。

示例:要选择所有文本,我们执行^A. 但是相反,我得到了 a ^Q,尽管在我编码时字母“a”被识别为“a”。

我对这个一无所知,因为例如^A在我的网络浏览器中工作正常。我怀疑它可能来自硬件,但谁知道呢。

PS:不管是IntelliJ 13还是14,问题都是一样的。

keyboard keyboard-shortcuts intellij-idea

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

防止Ghostscript将错误写入标准输出

我正在使用Ghostscript将PDF文件的第一页栅格化为JPEG.为避免创建临时文件,PDF数据通过管道传输到Ghoscripts的stdin中,JPEG在stdout上"耗尽".这个管道就像一个魅力,直到GS收到无效的PDF数据:而不是像我期望的那样在stderr上报告所有错误消息,它仍然将一些消息写入stdout.

重现:

$ echo "Not a PDF" >test.txt
$ /usr/bin/gs -q -sDEVICE=jpeg -dBATCH -dNOPAUSE -dFirstPage=1 -dLastPage=1 \
    -r300 -sOutputFile=- - < test.txt 2>/dev/null
Error: /undefined in Not
Operand stack:

Execution stack:
...
Run Code Online (Sandbox Code Playgroud)

请注意,2>/dev/null上述内容不会抑制错误消息.Ghostscript的文档已经警告过,写入stdout需要使用-q标志来抑制stdout上的消息,但我似乎仍然缺少一些东西.

stdout ghostscript stderr

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

Scalaz验证

我正在尝试在我们的项目中使用scalaz验证并遇到以下情况:

def rate(username: String, params: Map[String, String]): ValidationNEL[String, Int] = {
  val voteV:Validation[String, RateVote] = validate(params, "vote") flatMap {v: String => RateVote(v)}
  val voterV:Validation[String, Sring] = validate(params, "voter")

  ... 
}
Run Code Online (Sandbox Code Playgroud)

现在我必须返回包含可能的参数错误的ValidationNEL,如果有的话,或者使用经验证的参数来调用该方法:

storage.rate(username, voter, vote): Validation[String, Int]
Run Code Online (Sandbox Code Playgroud)

我知道,我可以使用| @ | 第一部分,但这个代码

(voterV.liftFailNel |@| voteV.liftFailNel) { (voter, rv) =>
  storage.rate(username, voter, rv)
}
Run Code Online (Sandbox Code Playgroud)

会回来的ValidationNEL[String, Validation[String, Int]].有没有办法"扁平化"这个结果,以获得ValidationNEL[String, Int]

validation scala scalaz

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