小编Sai*_*ish的帖子

JDK 7中的类型推断比JDK 6更具限制性吗?

我认为这可能与为什么List的通用演员表有关?扩展Set ..>到List <Set ..>在Sun JDK 6上成功但在Oracle JDK 7上无法编译?

如果我们采用以下类,它们在JDK 6下编译正常:

public final class Foo<V> {

    private final V value;

    private Foo(final V value) {

        this.value = value;
    }

    public static <T, R extends T> Foo<T> of(final R value) {

        return new Foo<T>(value);
    }
}

final class Tester {

    @Test(groups="unit")

    public static void test() {

        bar(Foo.of(BigDecimal.ZERO));  // This line fails in JDK 7 but not JDK 6
    }

    private static void bar(final Foo<? extends Number> target) {

        assert target != …
Run Code Online (Sandbox Code Playgroud)

java generics type-inference java-7

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

Spring依赖注入,使用@Named还是@Resource?

有两个独立的注释的名字在春季进行依赖注入,javax.annotation.Resource以及javax.inject.Named.Spring上文档表明@Resource应该按名称注入:

如果您打算按名称表达注释驱动的注入,请不要主要使用@Autowired,即使技术上能够通过@Qualifier值引用bean名称.相反,使用JSR-250 @Resource注释,该注释在语义上定义为通过其唯一名称标识特定目标组件,声明的类型与匹配过程无关.

上面的内容有点令人困惑,因为Spring只是提倡@Resource而不是@Autowired结合使用@Qualifer.@Named直到后面的文档中才提及.

JSR-250定义@Resource,而JSR-330定义@Inject@Named.我知道它们可以很容易地在Spring中混合和匹配.使用哪个JSR?

看起来像Guice和CDI的可移植性会很好,因此使用JSR-330注释.另一方面,文档还指出Spring中使用JSR-330注释时的一些限制.

注释注释的最佳实践(如果有)是什么?

谢谢.

java spring dependency-injection

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

Scala在PCDATA中嵌入了嵌套的XML文档

我遗憾地要求生成一些凌乱的XML.

主文档必须包含嵌入的XML文档.但是,嵌入文档出现在CDATA部分中.最终结果应如下所示:

<?xml version="1.0"?>
<foo>
  <xml>
    <![CDATA[
      <?xml version="1.0" encoding="UTF-8"?>
      <bar>
      </bar>
    ]]>
  </xml>
</foo>
Run Code Online (Sandbox Code Playgroud)

我遇到两个问题:

首先,在CDATA部分中输出的任何内容都呈现为转义(例如,大于符号>变为&gt;)

有没有办法禁用CDATA部分中的转义?

其次,我无法创建XML声明.尝试包含嵌入的XML文档时,我收到以下异常:

def serializeEmbedded(): Seq[Node] = {
  <?xml version="1.0"?>
  <bar>
  </bar>
}

Exception in thread "main" java.lang.IllegalArgumentException: xml is reserved
    at scala.xml.ProcInstr.<init>(ProcInstr.scala:25)
Run Code Online (Sandbox Code Playgroud)

这是我第一次涉足Scala的原生XML处理.

谢谢,

Saish

xml scala

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