小编Dun*_*gor的帖子

如何在Scala中填充Wicket @SpringBeans?

我有一个检票Page@SpringBean

class ScreenDetailsPage(parameters: PageParameters) extends BasePage(parameters) {
    @SpringBean(name = "screenDAO") protected var screenDao: DAO[Screen] = null
    assertNotNull(screenDao)
Run Code Online (Sandbox Code Playgroud)

我发现没有填充@SpringBean.如果screenDao是val或var,protected或private 则没有区别.

查找树,我发现Component(间接)的构造函数@SpringBean代表其子类初始化s,但是对null的赋值是uninitializing它.但Scala要求分配.

我该如何防止这种行为?

spring wicket scala

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

泛型中奇怪的嵌套结构类型

有人可以解释嵌套在泛型中的结构类型的奇怪结构:

implicit def Function1Functor[R]: Functor[({type ?[?]=(R) => ?})#?] = 
  new Functor[({type ?[?]=(R) => ?})#?] ....
Run Code Online (Sandbox Code Playgroud)

此示例来自Scalaz库:Functor.scala

为什么需要这种结构呢?写起来并不简单:

 implicit def Function1Functor[R,A]: Functor[R =>A]
Run Code Online (Sandbox Code Playgroud)

要么

 implicit def Function1Functor[R,A]: Functor[Function1[R,A]]
Run Code Online (Sandbox Code Playgroud)

scala structural-typing scalaz

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

java.lang.reflect.Proxy实例是否专门用于最终化处理?

当我使用对该对象的java.lang.reflect.Proxy.newInstance(...)调用创建接口的实例时,finalize不会将其传递给invocationHandler.有人能指出我记录这种行为的地方吗?

private Method lastInvokedMethod = null;

@Test
public void finalize_methods_seem_to_disappear_on_proxies() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
    final Method lengthMethod = CharSequence.class.getDeclaredMethod("length");
    final Method finalizeMethod = Object.class.getDeclaredMethod("finalize");
    final Method equalsMethod = Object.class.getDeclaredMethod("equals", new Class[] {Object.class});

    InvocationHandler handler = new InvocationHandler() {
        @Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
            lastInvokedMethod = method;
            if (method.equals(lengthMethod))
                return 42;
            else if (method.equals(equalsMethod))
                return true;
            else
                return null;
        }
    };
    CharSequence proxy = (CharSequence) Proxy.newProxyInstance(this.getClass().getClassLoader(), new Class<?>[]{CharSequence.class}, handler); …
Run Code Online (Sandbox Code Playgroud)

java reflection proxy

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

如何向接口添加未使用的泛型参数会阻止实现它的类?

以下代码

public interface IGiveUp
{
    void surrender(List<Class> l);
}
public class GiveUp implements IGiveUp {

    @Override public void surrender(List<Class> l) {}
}
Run Code Online (Sandbox Code Playgroud)

编译好.但是当我向接口添加一个未使用的泛型类型参数时

public interface IGiveUp<X>
{
    void surrender(List<Class> l);
}
Run Code Online (Sandbox Code Playgroud)

它无法编译(javac 1.6.0_23)

IGiveUp.GiveUp is not abstract and does not override abstract method surrender(java.util.List)
Run Code Online (Sandbox Code Playgroud)

如果我在实现中指定泛型,它将编译

public class GiveUp implements IGiveUp<Object>
Run Code Online (Sandbox Code Playgroud)

或使方法参数成为非泛型类型的列表

void surrender(List l);
Run Code Online (Sandbox Code Playgroud)

java generics interface

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

如何通过名称获取对Kotlin对象的引用?

如果我有一个顶级对象声明

package com.example

object MyObject {}
Run Code Online (Sandbox Code Playgroud)

如何将字符串com.example.MyObject转换为引用MyObject

reflection kotlin

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

如何将JQuery选择器应用于Wicket ModalWindow

我正在使用一个漂亮的新show-your-password-single-char JQuery hacks,我可以将其应用于我在页面上的所有密码字段

<script type="text/javascript">
  $(document).ready( function() {
    $('input:password').dPassword();
  });
</script>
Run Code Online (Sandbox Code Playgroud)

但我的更改密码对话框是在Wicket ModalWindow中呈现的,

final ModalWindow window = new ModalWindow("change-password-panel");
final PasswordChangePanel panel = new PasswordChangePanel(window, myPasswordValidator);
window.setContent(panel);
add(window);
add(new AjaxFallbackLink<String>("change-password") {
    @Override public void onClick(AjaxRequestTarget target) {
        window.show(target);
    }});
Run Code Online (Sandbox Code Playgroud)

所以它不在document.ready上.

当我的ModalWindow显示时,如何安排重新运行JQuery选择器?

java jquery wicket

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

在Scala方法中自动委派给val

我正在为Wicket应用程序编写ScalaTest FeatureSpec.我有一个wicketTester值,我继续调用方法,即:

scenario("No username and password") {
  val wicketTester = new WicketTester(app)
  given("user visits Admin home page")
  wicketTester.startPage(classOf[AdminHomePage])

  then("signin page is displayed")
  val login = wicketTester.newFormTester("signInPanel:signInForm")
  wicketTester.assertRenderedPage(classOf[SignInPage])
  ...
  when("correct username and password are entered")
  ...
  then("no login and error is displayed")
  wicketTester.assertRenderedPage(classOf[SignInPage])
  wicketTester.assertErrorMessages(Array("Field 'password' is required."))
Run Code Online (Sandbox Code Playgroud)

现在所有这些对wicketTester的参考都让我失望了,所以我想删除它们,目标是DSL必杀技......

scenario("No username and password") {
  val wicketTester = new WicketTester(app)
  given("user visits Admin home page")
  startPage(classOf[AdminHomePage])

  then("signin page is displayed")
  val login = wicketTester.newFormTester("signInPanel:signInForm")
  assertRenderedPage(classOf[SignInPage])...
Run Code Online (Sandbox Code Playgroud)

有没有办法让本地方法看起来好像是我班上的方法?

dsl scala

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

类java.lang.String类MyJavaClass中的值foo在Java类和Scala特性中具有不兼容的类型混合

我有一个Scala特征

trait MyTrait{  
  val foo: String
  def bar = foo
}
Run Code Online (Sandbox Code Playgroud)

以及提供foo的Java类

public class MyJavaClass {
    public final String foo = "hello";
}
Run Code Online (Sandbox Code Playgroud)

现在我尝试混合它们

class MyScalaClass extends MyJavaClass with MyTrait { 
}
Run Code Online (Sandbox Code Playgroud)

它不会编译

overriding value foo in trait MyTrait of type String;  value foo in class MyJavaClass of type java.lang.String has incompatible type.
Run Code Online (Sandbox Code Playgroud)

我已经尝试了vals,vars和defs的所有组合,看似合理,但找不到任何编译此配置的方法.

如何使用Java类提供特征的val?

java scala traits

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

什么是支持JDK 1.4的Groovy的最新版本

我需要在嵌入式1.4兼容VM上运行Groovy.当前的Groovy版本至少需要JDK 1.5.

过去的某些版本确实支持JDK 1.4,但当前版本没有.

java groovy jdk1.4

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

如何在java中汇总数字?

出于某种原因,当我运行以下代码时,程序打印出"JDN4"或"JDN16",我总是希望它打印"JDN",然后打印三个数字,范围从0到9; 例如,"JDN123"或"JDN045"或"JDN206".代码有什么问题?

import java.util.*;

public class Document2 {
    public static void main(String[] args) {
        String initials = "JDN";
        int randomNumbers;
        Random generator = new Random();
        int randomNumber1 = generator.nextInt(9);
        int randomNumber2 = generator.nextInt(9);
        int randomNumber3 = generator.nextInt(9);
        randomNumbers = randomNumber1 + randomNumber2 + randomNumber3;
        String userName = initials + randomNumbers;
        System.out.println("Your username is " + userName +  ".");
    }
}
Run Code Online (Sandbox Code Playgroud)

java numbers

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

如何将Map [K,Option [V]]转换为Map [K,V],在Scala中丢弃Nones?

可能重复:
将Map [K,Option [V]]转换为Map [K,V]的更好方法

Map[Symbol, Option[String]]从一个网页上读取值,其中一些可能会丢失.

我想"扁平化"这个Map[Symbol, String]去除所有的None价值观.

到目前为止我能做的最好的是

def removeNones[K, V](map: Map[K, Option[V]]): Map[K, V] = 
    map.collect { case kv if kv._2.isDefined => (kv._1, kv._2.get) }
Run Code Online (Sandbox Code Playgroud)

但我真的不喜欢case,不得不重建Pair.

谁能找到更好的表达方式?

scala scala-collections

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

从Scala中的向下转换变量导入?

我正在写一个ScalaTest JMock期望.语法通常是

expecting { e => import e._
  // call methods on e
}
Run Code Online (Sandbox Code Playgroud)

现在我碰巧知道e是Expectation的子类.我可以写

expecting { e => 
  val e2 = e.asInstanceOf[MySubclass]
  import e2._
  // call MySubclass methods
}
Run Code Online (Sandbox Code Playgroud)

但我找不到任何制作单线的方法

expecting { e => import (e.asInstanceOf[MySubclass])._
  // call MySubclass methods
}
Run Code Online (Sandbox Code Playgroud)

编译.

无论如何,只需一步结合向下铸造和进口?

import casting scala

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