生成数据库ID的最佳策略是什么?用数据库生成器?使用自定义发电机?各有哪些优缺点?
编辑:我为此重构提交了一个Eclipse增强请求.
有没有办法将私有字段从一个类移动到其辅助类?下面的鸡刮UML显示了我现在手动做的事情.在重构之前,类C1具有对象的私有field和私有最终引用Helper.
重构后,所有引用C1'到field被改为helper.getField()和helper.setfield()适当的.

class Field {}
class C1 {
final private Field field;
final private Helper helper;
public Field getField() {
return field;
}
public C1() {
helper = new Helper();
field = new Field();
}
}
class Helper {}
class C1Prime {
final private HelperPrime helper;
public Field getField() {
return helper.getField();
}
public C1Prime() {
helper = new HelperPrime(); …Run Code Online (Sandbox Code Playgroud) 在Eclipse中,如果我尝试将"Generate Delegate Methods"重构应用于Java类,如下所示:
class Foo implements Bar {
Bar bar;
}
Run Code Online (Sandbox Code Playgroud)
Eclipse不会@Override为生成的方法生成注释.这是一个错误还是有充分的理由呢?
我刚安装了Scala IDE Eclipse插件,全新安装了Eclipse Indigo.我在scala-ide.org主页上关注了Indigo全新安装的入门youtube视频.它不显示String Java类的完整文档,而是显示"type String = String"
我通过查看项目属性偶然注意到,在scala-library.jar和项目中的其他项目中,在"javadoc location"下,它们显示"(None) - non-modifiable".我不确定这是否是问题,或者Scala编辑器是否在其他地方获取其文档.
有没有其他人经历过这个和/或想出如何修复它?谢谢!
我想在用测试夹具替换它之前备份我的应用程序的数据库.由于Android限制,我被迫使用Junit3,我想实现@BeforeClass和@AfterClass的等效行为.
更新:现在有一个工具(Junit4Android)可以在Android上获得对Junit4的支持.这有点像kludge,但应该工作.
为了实现@BeforeClass等价物,我一直在使用静态变量并在第一次运行期间初始化它,但我需要能够在运行所有测试后恢复数据库.我想不出有什么方法可以检测上次测试的运行时间(因为我认为测试执行顺序无法保证.)
public class MyTest extends ActivityInstrumentationTestCase2<MainActivity> {
private static boolean firstRun = true;
@Override
protected void setUp() {
if(firstRun) {
firstRun = false;
setUpDatabaseFixture();
}
}
...
}
Run Code Online (Sandbox Code Playgroud) 我想确定将我的一个Eclipse插件降级到以前的版本是否解决了我遇到的问题.我想知道是否有使用插件的Eclipse更新站点的一般方法,我可以使用Eclipse的安装GUI来安装旧版本的插件.
如果重要,感兴趣的工具是此更新站点上的Scala-IDE:http: //download.scala-ide.org/releases-28/2.0.0-beta
我想要的是2.0.0-beta的先前版本.
我为我的应用程序开发了一小部分用Scala编写的Android测试,它使用了Robotium库.该套件适用于所有目的和标准的Android JUnit测试项目,并且如果从Eclipse启动,则可以成功运行.
我已经用sbt android-plugin成功构建并运行我的主要Android应用程序.主要应用程序位于[ProjectDir]/src/main.我还能够成功构建位于[ProjectDir]/tests/src/main目录中的Android测试应用程序.我检查了模拟器,测试应用程序似乎已经使用android-plugin tests/android:install-emulator命令正确安装.但是,当我尝试通过运行测试项目时sbt tests/android:test-emulator,我得到:
...
Test results for InstrumentationTestRunner=
Time: 0.001
OK (0 tests)
Run Code Online (Sandbox Code Playgroud)
我怎样才能让sbt android-plugin认识到该项目包含JUnit测试并运行它们?
所以我有这个方法:
protected void collectSelectedItems(ListSelectionModel lsm,
Collection<? super MyItemClass> result) {
for (int i : GUI.getSelectionIndices(lsm))
{
result.add(getItemByDisplayIndex(i));
}
}
Run Code Online (Sandbox Code Playgroud)
我想返回集合而不是void方法:
protected <T super MyItemClass> Collection<T>
collectSelectedItems(ListSelectionModel lsm, Collection<T> result) {
for (int i : GUI.getSelectionIndices(lsm))
{
result.add(getItemByDisplayIndex(i));
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
意图做这样的事情(在哪里MyItemClass extends MyItemBaseClass):
List<MyItemBaseClass> list =
collectSelectedItems(lsm, new ArrayList<MyItemBaseClass>());
Run Code Online (Sandbox Code Playgroud)
但我得到一个语法错误super:
令牌"super"上的语法错误,预期
是什么赋予了?我能解决这个问题吗?
Eclipse是否可以创建一个新的工作集,其中所有文件都在当前(Java)编辑器中打开?
据我所知,唯一的方法是手动选择项目资源管理器中的每个文件.
我目前正在研究2.3版本的android,我想将我的应用程序切换到4.0版本但TabActivity不推荐使用.所以我一直在找工作的例子,FragmentTabs但我找不到一个.有人可以帮忙吗?
eclipse ×5
java ×5
android ×3
scala ×3
junit ×2
refactoring ×2
scala-ide ×2
android-ui ×1
database ×1
eclipse-jdt ×1
generics ×1
javadoc ×1
junit3 ×1
junit4 ×1
sbt ×1
scaladoc ×1
working-set ×1