小编pra*_*pes的帖子

用于Java Web应用程序的逆向工程工具

我一直在互联网上寻找一个可以接受Netbeans Web项目并创建由这些类产生的UML图的应用程序.此外,但不是必需的,我想在我之前提到的Java Web项目中使用类似的JavaScript代码工具.试图理解我给出的这个网络项目的结构和内在关系,这是一个地狱.

javascript java uml netbeans reverse-engineering

5
推荐指数
1
解决办法
4734
查看次数

状态机工作流框架

我即将在我的应用程序中实现基于状态机的工作流程,并且我遇到了一个有趣的框架,可以使这项任务更容易 - http://code.google.com/p/stateless/
可悲的是,它只适用于C#.
有没有人知道Java的类似工作流框架?我担心整合Drools会花费比我能承受的更多的时间,我需要像Stateless框架那样轻量级的东西.

java workflow state-machine state-machine-workflow

5
推荐指数
1
解决办法
1万
查看次数

如何仅针对特定类型的元素进行迭代?

我有一个数组列表:

private List<GameObject> gameObjects = new CopyOnWriteArrayList<GameObject>();
Run Code Online (Sandbox Code Playgroud)

GameObject可以是3类中的一个:Spaceship,BeamAsteroid.它们都很相似所以我将它们保存在一个数组中.然而,太空飞船有另外的方法射击,在其他线程(被称为ShootRunnable)中每100ms使用一次.所以我想迭代它,Spaceship因为其他没有实现射击方法.实现这一目标的最佳方法是什么?

for (GameObject ob : gameObjects) {
  if (ob instanceof Spaceship) {
    ob.shoot();
  }
}
Run Code Online (Sandbox Code Playgroud)

我可以使用上面的内容迭代它吗?只是使用演员或其他什么?请帮忙.

java oop

5
推荐指数
1
解决办法
133
查看次数

在JavaScript中处理非法参数的惯用方式是什么?

假设我有一个仅接受非负数的函数,而我却得到了负数。

在Python中,我会提出一个ValueError。在Java中,我会抛出IllegalArgumentException。我应该在JavaScript中抛出任何内置的异常,还是应该返回undefined

javascript idioms

5
推荐指数
1
解决办法
184
查看次数

org.w3c.dom.NodeList不扩展Iterable

有没有理由为什么Java org.w3c.dom库的作者会选择不支持Iterable接口?例如,接口NodeList似乎非常适合扩展Iterable.

java dom

5
推荐指数
1
解决办法
510
查看次数

Git - 分支名称与现有提交哈希的前缀相同

我有一个远程分支,其名称与主分支中现有提交哈希的前缀相匹配.我想签出这个分支,但git将转而执行提交.这个问题有一个简单的解决方案吗?

  • 分支的名称是'ce38'.
  • 还有一个哈希'ce38a103b ...'的提交.
  • 遥控器的名称是'origin'

git

4
推荐指数
1
解决办法
161
查看次数

CompoundPropertyModel - 在渲染之前转换布尔值

我正在使用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)

java wicket

3
推荐指数
2
解决办法
2208
查看次数

使用Void作为可选参数的更好的替代方案

我有一个接口指定方法,它采用泛型类型作为输入,用于创建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)

java oop generics

3
推荐指数
1
解决办法
966
查看次数

F#中记录的模式匹配

是否有更惯用的方式如何在记录上进行模式匹配?我的代码似乎不对.

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)

f# idioms pattern-matching

3
推荐指数
1
解决办法
814
查看次数

MyBatis中单个映射器方法中的多个语句

我有一个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)

java mysql ibatis mybatis

3
推荐指数
1
解决办法
3810
查看次数