我想知道下面的代码是否有意义,因为编译器警告"空白的最终字段对象可能尚未初始化".有没有更好的方法呢?
public abstract Test {
protected final ArrayList<Object> objects;
}
public TestSubA extends Test {
public TestSubA() {
objects = new ArrayList<Objects>(20);
// Other stuff
}
}
public TestSubB extends Test {
public TestSubB() {
objects = new ArrayList<Objects>(100);
// Other stuff
}
}
Run Code Online (Sandbox Code Playgroud) 我在VisualWorks和Oracle数据库中使用Glorp.由于Oracle不知道LIMIT命令,因此以下查询将返回WHERE子句为其计算为true的myTable的所有记录.
q := Glorp.SimpleQuery
returningManyOf: MyTable
where: [:each | each name = 'test']
limit: 10.
q orderBy: [:each | each id descending].
results:= aGlorpSession execute: q.
Run Code Online (Sandbox Code Playgroud)
我如何在这个Glorp查询中加入ROWNUM?
//编辑生成的SQL:
SELECT t1.id, t1.name
FROM MyTable t1
WHERE (t1.name= ?) ORDER BY t1.id DESC
Run Code Online (Sandbox Code Playgroud) 我有一个循环用户元素的方法,并根据一些给定的约束设置一个布尔值:
public void checkUsers( int constraint ) {
for(int i=0; i<nodeUsers().size(); i++) {
UserElement elem = nodeUsers().getUsersElementAt(i);
switch (constraint) {
case CHECK_ALL:
elem.setChecked(true); break;
case CHECK_NONE:
elem.setChecked(false); break;
case CHECK_NO_LANG:
if (elem.getLanguage() == null)
elem.setChecked(true);
else
elem.setChecked(false);
break;
// More cases
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道这个解决方案是否合适.也许我可以更好地编写不同的方法,如:
public void checkAllUsers() {
for(int i=0; i<nodeUsers().size(); i++) {
UserElement elem = nodeUsers().getUsersElementAt(i);
elem.setChecked(true);
}
}
public void checkNoUsers() {
for(int i=0; i<nodeUsers().size(); i++) {
UserElement elem = nodeUsers().getUsersElementAt(i);
elem.setChecked(false);
}
}
Run Code Online (Sandbox Code Playgroud)
//编辑:我添加了第三个案例.