我目前正在尝试拆分一个字符串,1128-2以便我可以有两个单独的值.例如,value1:1128和value2:2,这样我就可以分别使用每个值.我试过split()但没有成功.Grails是否有特定的处理方式,或者更好的方法呢?
在Java中,我LinkedHashMap用于此目的.Java的文档LinkedHashMap很清楚,它具有"可预测的迭代顺序",我在Scala中需要相同的东西.
Scala有ListMap和LinkedHashMap,但他们这样做究竟是什么文件很糟糕.
问题:Scala LinkedHashMap或ListMap实现是否用于此目的?如果没有,除了LinkedHashMap直接使用Java之外还有哪些其他选项?
我试图使用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) 我们尝试用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) 我正在与一个非常古老的系统连接,我需要生成的文件需要一个由字符串组成的字段,但需要正好是15个宽度.
我想要这样的东西:
val companyName = "FooBar, Inc" // 11 chars
f"$companyName%s"
Run Code Online (Sandbox Code Playgroud)
回来:
" FooBar, Inc"
Run Code Online (Sandbox Code Playgroud)
是否有一种灵巧的方式来做我正在尝试使用字符串插值?
我想在Play Framework 2.4中使用getInstanceGuice Injector类的方法,我该如何访问它?
我已经使用Guice FactoryModuleBuilder实现了一个在运行时返回另一个工厂的工厂!在返回工厂的第二级,我需要访问Play Guice Injector以使用反射而不是@Inject注释来手动获取对象.
我在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).谢谢
我最近购买了一台安装了 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,问题都是一样的。
我正在使用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上的消息,但我似乎仍然缺少一些东西.
我正在尝试在我们的项目中使用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]?
scala ×4
java ×3
groovy ×2
guice ×2
ghostscript ×1
jenkins ×1
keyboard ×1
ordered-map ×1
padding ×1
scala-2.10 ×1
scala-2.8 ×1
scalaz ×1
split ×1
stack-trace ×1
stderr ×1
stdout ×1
string ×1
testing ×1
validation ×1