我有下一个代码:
class Foo {
public Foo (String param) { ... }
}
class Bar extends Foo {
public Bar () {
super (doSmth());
...
}
private static String doSmth () {
//what I can NOT do here?
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道它安全吗?doSmth方法有什么限制吗?
我有一个豆田status.根据status值,应该应用不同的css类来渲染它.
所以,我需要这样的东西(离真实伪代码很远):
if status == "Approved"
cssClass = "green"
if status == "Rejected"
cssClass = "red"
<span class="cssClass">Some info</span>
Run Code Online (Sandbox Code Playgroud)
我试图申请,jstl但我不能使它与facelets和jsf(但我听说这是可能的,也许它的真相).这是代码:
<c:choose>
<c:when test="#{report.approved}">
<c:set var="statusClass" value="approved"/>
</c:when>
<c:when test="#{report.rejected}">
<c:set var="statusClass" value="rejected"/>
</c:when>
<c:when test="#{report.inProgress}">
<c:set var="statusClass" value="progress"/>
</c:when>
<c:when test="#{report.pendingHR}">
<c:set var="statusClass" value="pending"/>
</c:when>
</c:choose>
<span class="status ${statusClass}">#{report.formattedStatus}</span>
Run Code Online (Sandbox Code Playgroud)
如何使用JSF/Facelets?
我正在阅读一个带有SAX解析器的XML文件(这部分可以改变它,这是一个很好的理由).
当我找到必要的属性时,我需要更改它们的值并将生成的XML文件保存为新文件.
我怎样才能做到这一点?
我使用注释来标记应该在事务中执行的方法.
但是,在一个地方我需要transactionManager.rollback()手动完成,没有注释.我怎样才能获得transactionManager对象?
我的建议:
1)要么enum只是在编译之前存在(就像泛型;但是我从来没有听过任何关于它的内容,而它在任何地方写的都是在编译后删除了泛型)
2)或Enum是一种以某种方式保持向后兼容性的方法(但我还没有看到这种方式).
还有其他建议吗?(顺便问一下,你有没有在你的代码中使用它?)
UPD:http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html
换句话说,有一个enum关键字和Enum类.它们都出现在Java 5中.问题是:为什么我们需要两者?
第二个问题:为什么Enum成为API的一部分?
为什么这个java代码会产生StackOverflowError?我知道这与递归泛型类型参数有某种联系.但我不明白整个机制.
public class SomeClass<T extends SomeClass> {
SomeClass() {
new SomeClassKiller();
}
private class SomeClassKiller extends SomeClass<T> {
}
public static void main(String[] args) {
new SomeClass();
}
}
Run Code Online (Sandbox Code Playgroud) 假设我有一个闭包:
def increment = {value, step ->
value + step
}
Run Code Online (Sandbox Code Playgroud)
现在我想循环遍历整数集合的每个项目,用5增加它,并将新元素保存到新集合:
def numbers = [1..10]
def biggerNumbers = numbers.collect {
it + 5
}
Run Code Online (Sandbox Code Playgroud)
现在我想通过使用increment闭包来实现相同的结果.我怎样才能做到这一点?
应该是这样的(下面的代码错误):
def biggerNumbers = numbers.collect increment(it, 5) //what's the correct name of 'it'??
Run Code Online (Sandbox Code Playgroud) 我有这个功能:
def ngrams(word):
for i in range(1, len(word) + 1):
yield word[:i]
Run Code Online (Sandbox Code Playgroud)
..我得到了一个错误
2012-03-09 19:37:31,928 ERROR worker-bootstrap: Error running worker process
net.grinder.scriptengine.jython.JythonScriptExecutionException: SyntaxError: ('invalid syntax', ('C:\\grinder-3.7.1\\lib
\\.\\nb-romg-file-store\\current\\grinder_test.py', 72, 15, ' yield word[:i] '))
(no code object) at line 0
Run Code Online (Sandbox Code Playgroud)
有没有办法让yield工作?我在jython控制台中尝试了相同的功能- 如果正常工作.
我想定义一个函数,它接受另一个函数(闭包)作为参数.第二个函数应该接受1个参数.
目前,我只有一个简单的签名:
def func1(func2) {
func2("string")
}
Run Code Online (Sandbox Code Playgroud)
有没有办法明确指定,func2应该接受1个参数(或更少)?
我有N个任务,我希望它们与N个线程并行处理.我想等到所有任务完成,存储结果,然后运行下N个任务(依次循环).
来自java util并发的哪些抽象可以帮助我?
我查看了ExecutorService.invokeAll(),但是它返回了一个期货列表,所以我应该循环遍历它们直到所有这些完成.
我想,应该有更简单的方法来计算一组任务.