我认为这可能与为什么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) 有两个独立的注释的名字在春季进行依赖注入,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注释时的一些限制.
注释注释的最佳实践(如果有)是什么?
谢谢.
我遗憾地要求生成一些凌乱的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部分中输出的任何内容都呈现为转义(例如,大于符号>变为>)
有没有办法禁用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