小编mat*_*hon的帖子

Groovy Generics失败

除了groovy比java更有动态...

为什么这是groovy中的编译时错误(意外令牌<):

interface A {
     <T> T getByClass(Class<T> clazz)
}
Run Code Online (Sandbox Code Playgroud)

我如何用groovy方式写这个?

java generics groovy

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

将字符串解析为Double.NaN

我想让用户编辑一个包含双重数据的字段.我想允许Double.NaN(取消值).是否存在Double.NaN从方法解析Double.valueOf(String)而不在后台检查的通用方法(预定义字符串)?

有一个特殊的字母看起来像一个带有问号的钻石(用HTML表示)就像NaN一样,但是 - 好吧 - 用户不会在他们的钥匙上找到它.

java string nan

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

关于空间/时间的Groovy集合性能考虑因素

与普通的Java for循环相比,Groovys集合方法(关于空间(!)和时间)的性能如何?

例如,对于这个用例:

  • sum()vs for-loop with variable
  • each()vs for-loop with variable
  • inject()vs for-loop with variable
  • 使用临时集合收集()与for循环
  • findAll()与for循环的临时集合
  • find()vs for-loop with variable

那么,考虑到这些结果,是否建议在关键环境中使用for循环而不是Groovy-collection-methods(例如Grails-WebApp)?是否有关于Groovy/Grails性能(优化)的资源?


使用此GBench测试,我获得了以下CPU时间结果:

                 user  system      cpu     real

forLoop       2578777      67  2578844  2629592
forEachLoop   2027941      47  2027988  2054320
groovySum     3946137      91  3946228  3958705
groovyEach    4703000       0  4703000  4703000
groovyInject  4280792     108  4280900  4352287



import groovyx.gbench.BenchmarkBuilder

def testSize = 10000
def testSet = (0..testSize) as Set


def bm = new BenchmarkBuilder().run {

'forLoop' {
    def n = 0
    for(int i = 0; …
Run Code Online (Sandbox Code Playgroud)

java optimization performance grails groovy

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

Groovy依赖注入

我想在我的所有具有log属性的类中注入Log4j Logger(或者在通用的情况下为任何类):

def log
Run Code Online (Sandbox Code Playgroud)

这是在Grails中自动完成的.我希望在普通的常规应用程序中具有相同的功能,让我们说下所有groovy文件src.Log4j的专长是,记录器需要知道要记录的类.(Logger.getLogger(Class clazz))

我怎样才能做到这一点?

java grails groovy dependency-injection

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

Grails GORM方法的内存使用情况

我想知道grails如何处理内存使用和通过GORM方法加载(获取)域对象,如:

findAllWhere
findAllBy
list
...
Run Code Online (Sandbox Code Playgroud)
  • 它们是否完全加载(分别是它们的代理)到内存中?
  • 如果我遍历它们each/every/any是否由迭代器支持懒惰地加载它们?
  • 我应该更喜欢createCriteria() {...}.scroll()更好的内存使用吗?

grails grails-orm

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

Cucumber-JVM蚂蚁任务

我如何告诉ant执行文件夹中的所有黄瓜测试(功能,实现)?

我坚持使用这个例子

<target name="runcukes" depends="compile-test">
        <mkdir dir="target/cucumber-junit-report"/>
        <java classname="cucumber.cli.Main" fork="true" failonerror="false" resultproperty="cucumber.exitstatus">
            <classpath refid="classpath"/>
            <arg value="--format"/>
            <arg value="junit:target/cucumber-junit-report/allcukes.xml"/>
            <arg value="--format"/>
            <arg value="pretty"/>
            <arg value="--format"/>
            <arg value="html:target/cucumber-html-report"/>
            <arg value="--glue"/>
            <arg value="cucumber.examples.java.helloworld"/>
            <arg value="src/test/resources"/>
        </java>

        <junitreport todir="target/cucumber-junit-report">
            <fileset dir="target/cucumber-junit-report">
                <include name="allcukes.xml"/>
            </fileset>
            <report format="frames" todir="target/cucumber-junit-report"/>
        </junitreport>

        <fail message="Cucumber failed">
            <condition>
                <not>
                    <equals arg1="${cucumber.exitstatus}" arg2="0"/>
                </not>
            </condition>
        </fail>
    </target>
Run Code Online (Sandbox Code Playgroud)

java ant groovy cucumber cucumber-jvm

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