小编fbl*_*fbl的帖子

使用scala中的yield返回和迭代集合

我在Scala中有一个DateTime和TimeSpan类(假设<和+运算符可以正常工作).我正在尝试定义一个'范围'函数,它采用开始/停止时间和步进的时间跨度.在C#中,我会以收益率来做这件事,我想我应该能够在Scala中做同样的事情......除了我得到一个奇怪的错误.

在'收益率'线上,我得到"非法开始陈述".

  def dateRange(from : DateTime, to : DateTime, step : TimeSpan) =
  {
      // not sure what the list'y way of doing this is
    var t = from

    while(t < to)
    {
      yield t; // error: illegal start of statement
      t = t + step
    }
  }
Run Code Online (Sandbox Code Playgroud)

看看这段代码,我很好奇两件事:1)我做错了什么?2)编写的代码非常必要(使用var t等).在Scala中以更快的速度执行此操作的功能是什么?

谢谢!

loops scala yield-keyword yield-return

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

使用带有自定义 Bean 解析器的 .properties 文件

我有一个 AbstractSingleBeanDefinitionParser 的自定义实现,以允许我在我的 spring 配置中定义 3D 矢量,而比其他方式所需的仪式更少。

<rbf:vector3d id="test_vector" delimeter=";" value="45;46;47"/>
Run Code Online (Sandbox Code Playgroud)

效果很好,我已经使用它几个月了,没有任何问题。昨天我尝试在 .properties 文件中定义值,如下所示:

在 test.properties 我有:

vector3d.value=1,2,3
Run Code Online (Sandbox Code Playgroud)

在 xml 文件中我有:

<context:property-placeholder location="test.properties"/>
<rbf:vector3d id="test_vector_with_properties" delimeter="," value="${vector3d.value}"/>
Run Code Online (Sandbox Code Playgroud)

当我尝试运行我的单元测试时,它崩溃了,我得到了这个异常:

Caused by: java.lang.NumberFormatException: For input string: "${vector3d.value}"
    at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1222)
    at java.lang.Double.parseDouble(Double.java:510)
    at scala.collection.immutable.StringLike$class.toDouble(StringLike.scala:234)
    at scala.collection.immutable.StringOps.toDouble(StringOps.scala:31)
    at rb.foundation.spring.xml.Vector3DBeanDefinitionParser$$anonfun$1.apply(Vector3DBeanDefinitionParser.scala:25)
Run Code Online (Sandbox Code Playgroud)

当我将 .properties 文件用于普通 bean 时,它工作得很好,这让我相信在我的解析器实现中我忽略了一个微妙之处。它是用 Scala 编写的,但您应该能够遵循它:

class Vector3DBeanDefinitionParser extends AbstractSingleBeanDefinitionParser
{
  override def getBeanClass(element : Element) = classOf[Vector3D]

  override def doParse(element: Element, builder: BeanDefinitionBuilder)
  {
    val delim = element.getAttribute("delimeter")
    val value = element.getAttribute("value")

    val …
Run Code Online (Sandbox Code Playgroud)

java customization spring scala javabeans

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

maven中scaladoc的多模块聚合

我有一个包含5个模块的父项目.我试图弄清楚如何将模块级scaladoc聚合成一个有凝聚力的站点.任何帮助将非常感激.

scala maven-3 scaladoc scala-maven-plugin

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

将sourcesJar任务添加到自定义Gradle插件

我的公司最近编写了用于vanilla配置的gradle插件(存储库,跨项目的公共依赖项等).总的来说,这大大简化了我们的构建过程,并发现了不同项目之间的一些不一致.我们最近尝试向插件添加sourcesJar任务,但它无法正常工作.

这是破碎的插件:

package com.mycompany.plugins

import org.gradle.api.Project
import org.gradle.api.Plugin
import org.gradle.api.tasks.bundling.Jar

class OurJavaPlugin implements Plugin<Project> {

    void apply(Project project) {

        def date = com.mycompany.util.UtilityFunctions.getDate()

        project.configure(project) {
            println('Applying Java properties to: ' + project.name)

            apply plugin: 'java'
            apply plugin: 'maven'
            apply plugin: 'idea'
            apply plugin: 'eclipse'

            version = date

            // Use the local repos
            repositories {
                maven {
                    url "$externalDependenciesRepo"
                }
                maven {
                    url "$internalDependenciesRepo"
                }
            }

            uploadArchives {
                repositories {
                    mavenDeployer {
                        // Deploy to internal repo
                        repository(url: "$internalDependenciesRepo") …
Run Code Online (Sandbox Code Playgroud)

java groovy build-process gradle gradle-plugin

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

在Scala IDE for Eclipse中启用任务标记

有没有办法在Scala IDE中为eclipse启用TODO/FIXME/etc类型的任务?我看到的唯一TODO是.java文件.

eclipse comments scala eclipse-plugin scala-ide

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

从Scala数组中提取区域

我真的不知道如何描述我在做什么,但这个例子应该有所帮助:

val vals = Array( (0, true), 
                  (1, true), 
                  (2,true), 
                  (3,true), 
                  (4,false), 
                  (5, true), 
                  (6, true), 
                  (7, false), 
                  (8, true), 
                  (9,true))
Run Code Online (Sandbox Code Playgroud)

我希望识别每个"真实"区域中的第一个和最后一个元素,尽管在值更改时对数组进行分区也可以正常工作.我可以强制执行此操作,但在scala中执行此操作的最佳方法是什么?

algorithm functional-programming scala partitioning

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

要在Scala/Gradle的build.gradle中包含什么

我想将Gradle用于多模块Scala项目.我无法弄清楚如何为Scala编译器使用genjavadoc-plugin.理想情况下,我想为每个库生成一个.jar,-sources.jar-javadocs.jar.在.jar-sources.jar很简单,但是是的Javadoc有点困难.在Maven和SBT中,您可以使用genjavadoc-plugin从Scala生成JavaDoc-able代码,然后运行JavaDoc.我不得不认为它在Gradle中同样可行,我只是不知道Gradle/Groovy能够做到这一点.

我可以制作ScalaDocs,但这些库是由Java开发人员使用的,他们希望将JavaDocs附加到.jarsEclipse中,我认为这是一个非常合理的请求.

应该包括哪些build.gradle来支持这个?

编译器插件在这里:https: //github.com/typesafehub/genjavadoc

java documentation build-process scala gradle

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

IntelliJ IDEA中的自定义spring命名空间处理程序

我正在编写有关编写自定义spring命名空间处理程序的教程:http: //static.springsource.org/spring/docs/2.5.x/reference/extensible-xml.html

一切都工作得很好,直到我到B.5节注册新的处理程序和模式.

我尝试将spring.handlers和spring.schemas放入我的项目中 - 没有用

我能够找到文件| 设置| Schema和DTD,它确实在编辑器中启用了自动完成,但处理程序仍未注册.这也没有转换为spring.schemas文件中的条目.

简而言之,有人可以解释如何在intelliJ 11.1.2中执行以下操作吗?

a)配置它以识别新的模式和命名空间处理程序b)在构建工件时将正确的信息放入META-INF/spring.handlers和spring.schemas文件中?

任何帮助将不胜感激.

java spring xsd intellij-idea xml-namespaces

2
推荐指数
1
解决办法
2623
查看次数

当我从test.java文件中运行Run时,JUnit测试不会运行

我有一个相当奇怪的问题w/JUnit4和Eclipse.

我有一个Quaternion.java文件和一个关联的QuaternionTest.java.在包浏览器中,我可以右键单击QuaternionTest.java文件和Run-As JUnit下的(C)图标.测试按预期运行.当我右键单击QuaternionTest.java文件并尝试运行测试时,我收到以下错误:

An internal error occurred during: "Launching java".
Path must include project and resource name: /QuaternionTest.java
Run Code Online (Sandbox Code Playgroud)

我是Eclipse和JUnit的新手,所以请原谅我这应该是显而易见的.我试过看了一下这些房产并没有看到任何东西.此外,如果我从构建路径中排除QuaternionTest.java,一切运行正常(当然,除了Quaternion测试)

任何想法都将非常感激.

java eclipse junit4

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

eclipse中的scala代码完成

[编辑]:我是个白痴.我正在使用'Eclipse IDE for Java Developers'并且应该使用'Eclipse Classic'.Scala插件在Classic下运行得更好.

*[编辑]:11/1/2011 - 10月31日发布的Beta 12版本似乎明显更好*

**[编辑]:11/4/2011 - Beta 12版本变得不稳定,以至于我们的团队切换到IntelliJ.我希望将来能够尝试Eclipse插件并获得不同的体验.

我在eclipse中有一个混合的java/scala项目,我发现代码完成并不总是有效.它似乎与"对象"以及在不同项目中定义的类有最多的问题.我知道这只是scala插件的一个"功能",但我是否应该采取一些措施来尽量减少这些功能的影响?

Eclipse Indigo
Scala Plugin: 2.0.0-beta11 
Run Code Online (Sandbox Code Playgroud)

在玩了一天后,我发现从scala访问java类的静态成员时会出现大多数问题.

eclipse scala scala-ide

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

如何实现java.util.priorityqueue?

有谁知道标准java优先级队列的实现细节?堆?skiplist?

java queue performance priority-queue data-structures

0
推荐指数
1
解决办法
2991
查看次数