草庐IT

scala-compiler

全部标签

java - Scala jar 读取外部属性文件

我已经编写了一些代码并将其导出为jar文件。在这个jar中有一个名为automation.properties的文件,其中包含我正在加载的默认值valautomationPropertiesFileURL=getClass.getResource("/automation.properties")if(automationPropertiesFileURL!=null){valsource=Source.fromURL(automationPropertiesFileURL)config=newProperties()config.load(source.bufferedReader(

java - 使用 Java Compiler API 无需安装 JDK

大家好我正在编写一些软件,允许用户为我的软件包中的特定用途创建他们自己的Java类。显然,我的软件需要能够调用Java编译器来编译用户生成的类,以便在我的程序中使用。但是,我不想要求用户下载并安装整个JDK,以便他们可以访问javacJava编译器。我知道在Jave6中有一个新的Java编译器API,但即便如此,只有JRE而不是JDK的用户在尝试实例化Java编译器工具时将得到一个空对象。那么,要让我的程序能够编译Java类,同时要求最终用户只在他们的机器上安装JRE,最好的方法是什么?如果这不可能,我需要在用户计算机上安装的最少一组库/jar文件是什么?我想另一种可能性是使用JWS(

java - SBT:如何防止自动将 scala-library 添加到 pom?

在一个由带有Scala测试的纯Java源组成并使用SBT0.11.2构建的项目中,我遵循了theinstructionstohavetheartifactsuploadedtoMavenCentral。.这工作得很好,除了scala-library在pom中被列为编译时依赖项,这是我不想要的,因为它会导致我的库的用户将scala拉为传递依赖项。有没有办法阻止添加这种依赖?具体我用的build.sbt可以看ongithub. 最佳答案 在你的build.sbt中设置autoScalaLibrary:=false这会移除对scala-l

java - Scala 按分隔符拆分列表的惯用方法是什么?

如果我有一个字符串类型的列表,scala>valitems=List("Apple","Banana","Orange","Tomato","Grapes","BREAK","Salt","Pepper","BREAK","Fish","Chicken","Beef")items:List[java.lang.String]=List(Apple,Banana,Orange,Tomato,Grapes,BREAK,Salt,Pepper,BREAK,Fish,Chicken,Beef)我如何根据特定的字符串/模式("BREAK",在本例中)将其拆分为n个单独的列表。我考虑过使用inde

java - Scala IDE - Play 2 Eclipse 插件不突出显示 Scala HTML 模板的语法

我安装了ScalaIDE-Play2插件(来自http://download.scala-ide.org/play2/nightly_3.0-M_juno_2.10-M/site/),而RouteEditor显示正确的语法突出显示,Scala模板没有。此外,它也不允许我在Eclipse的首选项->Play->模板-语法着色中“启用”语法突出显示选项。因此,Scala语法不会在main.scala.html和index.scala.html中突出显示我也在使用http://download.scala-ide.org/nightly-scala-ide-juno-210x用于Eclips

java - Scala 的部分函数是否具有 Java 等效项?

Scala有partialfunctions这些函数仅适用于输入类型的某些值,但不是全部:valisEven:PartialFunction[Int,String]={casexifx%2==0=>x+"iseven"}assert(isEven(10)equalsIgnoreCase"10iseven")assert(isEven.isDefinedAt(11)==false)更有用的是,scala允许将“部分性”应用于trait的子类型:sealedtraitBaseTraitcaseclassFoo(i:Int)extendsBaseTraitcaseclassBar(s:Str

如何使用AsynchttpClient和Scala实现简单重试

我在用着https://github.com/asynchttpclient/async-http-client这个库在我的Scala项目中,并使用它执行一些HTTP调用,但是现在在一些HTTP调用中,如果我没有得到预期的结果3次,我需要重试电话。我应该如何实施这样的事情?Thaknks看答案这是基于Future的重试函数的一个示例。Recoverwith如果运行它,您可以看到它打印出“运行过程”,直到未来成功,但不超过“时间”时间objectXextendsApp{typeRequest=StringtypeResponse=Stringimportscala.concurrent.Exec

java - 如何将 AWS Java SDK 添加到 Scala/Play 项目

我正在玩弄Scala和Play,我想在其中使用AWSJavaSDK.我需要将SDK添加到项目中。我知道我需要使用plugins.sbt来做到这一点。我尝试过的resolvers+="SonatypeOSSSnapshots"at"https://oss.sonatype.org/content/repositories/snapshots"addSbtPlugin("com.amazonaws"%"aws-java-sdk"%"1.11.46")它在说:unresolveddependencies:Error:Unresolveddependencies:com.amazonaws#a

Java/Scala 以类型安全的方式获取 Field 引用

Java声称是面向对象和类型安全的,Scala更是如此。内部类字段由名为Field的类表示,您可以通过反射API获取对它的引用。我的问题:这些语言是否提供了以类型安全方式获取字段引用的方法?(如果不是,为什么不呢?似乎是一个明显的缺陷)将对象映射到某些外部表示(例如模板中的html字段或数据库中的列名称)以自动保持引用名称同步时,这将非常有用。理想情况下,我想这样说:&(SomeClass.someField).name()获取字段声明的名称,类似于java枚举让你说的方式:MyEnum.SOME_INSTANCE.name()[更新:]在阅读了有关此功能会以某种方式违反反射API意图

java - Scala 模式匹配 Java 枚举值

我有我的java枚举,例如:FOO("foo")、BAR("bar")...我有一个getValue()方法来返回枚举的值"foo"和"bar"并且这必须在Java中.另一方面,我必须在Scala中匹配这个:resultmatch{case"foo"=>我正在尝试:resultmatch{caseEnum.FOO.getValue()=>我收到这个错误:methodgetValueisnotacaseclassconstructor,nordoesithaveanunapply/unapplySeqmethod我不太确定这里发生了什么,因为我的getValue()方法返回一个Strin