Tag: scala

包中包含具有相同名称的对象和包

我在使用Maven或Eclipse编译一些Scala时遇到问题,我尝试从包含名称空间和同名类的Java jar导入类。 但是我可以用scalac编译。 例如,Java项目(jar)包含: src/foo/bar.java src/foo/bar/some_resource.txt -> foobar.jar Scala project references foobar.jar Foobartest.scala: import foo.bar class foobartest { } 编译器抱怨: package foo contains object and package with same name: bar one of them needs to be removed from classpath 使用Maven 3.0.03 / Eclipse 3.7.1和Scala 2.9.0.1(和maven-scala-plugin )。 我遇到问题的jar是jenkins-core-1.399.jar – 它肯定包含几个实例,其中有一个名称空间和同名对象。 我试图在Scala中编写一个Jenkins插件(我可以用Java做这个,但是我更喜欢scala,因为我们所有的库都在scala中),这依赖于使用Maven – https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial 。

在Scala中使用Java库

我是Scala的新手。 到目前为止,我只能编写基本代码,但我想更具体地开始使用它,而不仅仅是学习理论。 假设我在HelloWorld.java中有以下Java代码: public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello, World”); } } 等效的Scala代码是什么?

将Java TreeMap代码迁移到Scala?

我正在将我的Java代码库迁移到纯Scala,我仍然坚持使用这一段代码 。 我有一个IntervalMap的实现,即一个数据结构,让你有效地将范围[from,to]映射到set , delete和get操作都是O(log n) (与IntervalTree或SegmentTree略有不同)。 这段代码使用Java的java.util.TreeMaps ,在迁移到Scala时,我遇到了两个大问题: Scala没有mutable.TreeMap – 我决定通过使用mutable.TreeSet (奇怪的是Scala有mutable.TreeSet但没有mutable.TreeMap )来存储密钥并将值存储在辅助的mutable.Map 。 这是一个令人不快的黑客,但还有更好的方法吗? 下一个问题是Scala的mutable.TreeSet没有java.util.TreeSet的ceilingKey , floorEntry , pollFirst , pollLast等同于Java中的所有O(log n)操作。 那么,我怎样才能最好地将我的代码迁移到Scala? 这些情况下的最佳做法是什么? 我真的不想编写自己的树实现。 有没有更惯用的Scala编写IntervalMaps的方式,我不知道? 或者那里有一些有信誉的图书馆? 或者Scala只是简单地使用它的gimped TreeSet和不存在的TreeMaps来吮吸它。 当然,我可以在Scala中使用Java的TreeMap ,但这很难看,我失去了所有不错的Scala集合function,我不妨使用Java。 这是我目前的Java代码: https : //gist.github.com/pathikrit/5574521

从java访问scala对象字段

我无法从java访问scala对象的字段。 斯卡拉: object TestObject { val field = 5 } Java的: public class JavaTest { public static void main(String[] args) { int i = TestObject.field; } } 错误: [error] JavaTest.java: cannot find symbol [error] symbol : variable field [error] location: class TestObject [error] int i = TestObject.field;

Scala是否可以在不更改JVM的情况下使用具体化的generics?

我最近开始学习Scala并且很失望(但并不感到惊讶)他们的generics也通过类型擦除来实现。 我的问题是,Scala是否有可能使用具体的generics,或者JVM是否需要以某种方式进行更改? 如果确实需要更改JVM,究竟需要更改什么?

计算有时间限制

我正在尝试编写一个允许我在给定时间窗口内运行计算的构造。 就像是: def expensiveComputation(): Double = //… some intensive math val result: Option[Double] = timeLimited( 45 ) { expensiveComputation() } 这里timeLimited将运行expensiveComputation ,超时为45分钟。 如果达到超时,则返回None ,否则将结果包装为Some 。 我正在寻找一个解决方案: 在性能和记忆方面相当便宜; 将在当前线程中运行限时任务。 有什么建议吗? 编辑 我理解我的原始问题没有解决方案。 假设我可以为计算创建一个线程(但我不想使用线程池/执行器/调度程序)。 什么是最快,最安全,最干净的方法?

Scala目前的工具状态是什么?

在过去的一年里,我听到越来越多关于Scala语言的炒作。 我知道有几个现有项目计划将Scala支持与IDE集成; 然而,并不总是清楚整合的真正程度。 他们目前是否支持Intellisense以及Eclipse和Netbeans为Java语言做的事情? 他们也支持即时validation吗?

可以从现有的java / scala接口和数据类型生成.thrift文件吗?

是否有一种简单的方法来获取现有的Java / scala数据类型和API接口并生成相应的.thrift文件? 让Thrift生成服务器数据结构是过度侵入的,因为它会产生后果: 我无法注释我的数据结构(例如,XML,JSON,hibernate持久性……) 此模式与其他想要拥有或需要修改源文件的序列化框架冲突。 结果,它看起来像thrift强制自己成为我的服务器的独有持久性格式 – 除非,我创建一个围绕Thrift的数据编组包装器或其他处理这些数据结构的持久性格式(hibernate, Jackson,scala BeanProperty,…)。 然而,这违背了自动化数据编组工具(如节俭)的目的,直接导致容易出错的世界,即必须保持相同但独立的接口和数据结构(=浪费有才华的工程师时间和能量)。 我对Thrift自动生成客户端代码感到非常满意。 但是,我(强烈)认为我需要自由编辑我的服务器在API中处理的数据结构。

如何在Play Framework中进行详细编译?

在使用Java的Play框架2.0.8中,是否可以进行详细的编译? 目前我只看到: [info]编译131个Scala源和10个Java源代码到…… 我正在尝试确定更改控制器时为什么会重新编译这么多文件的原因。 提前致谢

‘jvm-1.8’不是’-target’的有效选择

当我尝试制作项目时,IntelliJ会抱怨以下exception。 Error:scalac: ‘jvm-1.8’ is not a valid choice for ‘-target’ Error:scalac: bad option: ‘-target:jvm-1.8′ 但是’gradlew clean install’工作得很好。 项目设置是: gradle版本2.3 scala 2.10和java 4个模块中的3个使用java 1.7(源和目标兼容性),第4个模块具有源和目标兼容性1.8并导致问题。 我有什么想法可以避免这个错误吗? (迁移到java 7不是一个选项,升级scala是)