我一直在互联网上寻找一个可以接受Netbeans Web项目并创建由这些类产生的UML图的应用程序.此外,但不是必需的,我想在我之前提到的Java Web项目中使用类似的JavaScript代码工具.试图理解我给出的这个网络项目的结构和内在关系,这是一个地狱.
我即将在我的应用程序中实现基于状态机的工作流程,并且我遇到了一个有趣的框架,可以使这项任务更容易 - http://code.google.com/p/stateless/
可悲的是,它只适用于C#.
有没有人知道Java的类似工作流框架?我担心整合Drools会花费比我能承受的更多的时间,我需要像Stateless框架那样轻量级的东西.
我有一个数组列表:
private List<GameObject> gameObjects = new CopyOnWriteArrayList<GameObject>();
Run Code Online (Sandbox Code Playgroud)
GameObject
可以是3类中的一个:Spaceship
,Beam
和Asteroid
.它们都很相似所以我将它们保存在一个数组中.然而,太空飞船有另外的方法射击,在其他线程(被称为ShootRunnable
)中每100ms使用一次.所以我想迭代它,Spaceship
因为其他没有实现射击方法.实现这一目标的最佳方法是什么?
for (GameObject ob : gameObjects) {
if (ob instanceof Spaceship) {
ob.shoot();
}
}
Run Code Online (Sandbox Code Playgroud)
我可以使用上面的内容迭代它吗?只是使用演员或其他什么?请帮忙.
假设我有一个仅接受非负数的函数,而我却得到了负数。
在Python中,我会提出一个ValueError
。在Java中,我会抛出IllegalArgumentException
。我应该在JavaScript中抛出任何内置的异常,还是应该返回undefined
?
我有一个远程分支,其名称与主分支中现有提交哈希的前缀相匹配.我想签出这个分支,但git将转而执行提交.这个问题有一个简单的解决方案吗?
我正在使用CompoundPropertyModel(通过PropertyListView)来打印对象(User)的属性.
User对象的一个属性是布尔值.我希望使用自定义转换来呈现布尔值(false - >"disabled",true - >"enabled").
如何在不向User对象添加新方法的情况下实现此目的?
add(new PropertyListView<User>("users", new LoadableUsersModel()) {
@Override
protected void populateItem(ListItem<User> item) {
item.add(new Label("firstname"));
item.add(new Label("surname"));
item.add(new Label("username"));
item.add(new Label("email"));
item.add(new Label("active"));
}
});
Run Code Online (Sandbox Code Playgroud) 我有一个接口指定方法,它采用泛型类型作为输入,用于创建URL.
interface UrlGenerator<T> {
String prepareUrl( T input );
}
Run Code Online (Sandbox Code Playgroud)
有一个实现不需要参数.它使用Void作为通用类型T.
class StaticUrlGenerator implements UrlGenerator<Void> {
private final String url;
public StaticUrlGenerator( String url ) {
this.url = url;
}
@Override
public String prepareUrl( Void nothing ) {
return url;
}
}
Run Code Online (Sandbox Code Playgroud)
StaticUrlGenerator很难使用,因为它需要null作为prepareUrl
方法的参数.
我可能会丢失input
参数:
interface UrlGenerator<T> {
String prepareUrl( T input );
}
Run Code Online (Sandbox Code Playgroud)
现在我必须以其他方式(在构造函数中)将所需的输入传递给实现类.这样我就失去了类的无状态特性,每次我想改变输入时,我都必须用不同的构造函数参数重新创建它.
class SchedulePageUrlGenerator implements UrlGenerator {
public static final String QUERY_STRING_BASE = "?from=";
private final String showingBaseUrl;
private final LocalDate date;
public SchedulePageUrlGenerator( …
Run Code Online (Sandbox Code Playgroud) 是否有更惯用的方式如何在记录上进行模式匹配?我的代码似乎不对.
type Period = AM | PM
type TimeOfDay = {hours : int; minutes : int; p : Period}
let before (tod1 : TimeOfDay, tod2 : TimeOfDay) =
match tod1, tod2 with
| {hours = h1; minutes = m1; p = AM}, {hours = h2; minutes = m2; p = AM} -> (h1, m1) < (h2, m2)
| {hours = h1; minutes = m1; p = PM}, {hours = h2; minutes = m2; p = PM} -> (h1, m1) < …
Run Code Online (Sandbox Code Playgroud) 我有一个mapper方法来删除表中的所有记录.但首先我需要从关联的联结表中删除所有记录.这是我试过的:
@Delete("delete from COC_BLOCK_FIELD; delete from COC_BLOCK;")
void deleteBlocks();
Run Code Online (Sandbox Code Playgroud)
这似乎是合理的,但MyBatis在处理我的mapper时抛出异常:
Caused by: org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'delete from COC_BLOCK' at line 1
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: delete from COC_BLOCK_FIELD; delete from COC_BLOCK;
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your …
Run Code Online (Sandbox Code Playgroud)