小编wul*_*pro的帖子

从访问者那里抛出异常的糟糕设计决定?

我已经阅读了一些关于在访问者中抛出异常的专家和骗子的答案,但我想我会用一个例子来提出我的具体问题:

public class App {
  static class Test {       
    private List<String> strings;

    public Test() {
    }

    public List<String> getStrings() throws Exception {
        if (this.strings == null)
            throw new Exception();

        return strings;
    }

    public void setStrings(List<String> strings) {
        this.strings = strings;
    }
}

public static void main(String[] args) {
    Test t = new Test();

    List<String> s = null;
    try {
        s = t.getStrings();
    } catch (Exception e) {
        // TODO: do something more specific
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

getStrings()投掷Exception时 …

java design-decisions

6
推荐指数
3
解决办法
1062
查看次数

引发另一个事件时如何引发事件?

我有一个处理OnQuit另一个正在运行的应用程序事件的应用程序。OnQuit处理上述事件后,如何引发其他(自定义)事件。

我的OnQuit管理员:

private void StkQuit()
{
   _stkApplicationUi.OnQuit -= StkQuit;
   Marshal.FinalReleaseComObject(_stkApplicationUi);
   Application.Exit();
}
Run Code Online (Sandbox Code Playgroud)

c# events

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

使用匿名委托返回对象

是否可以使用匿名委托来返回对象?

像这样的东西:

object b = delegate { return a; };
Run Code Online (Sandbox Code Playgroud)

c# language-features delegates

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

Java相当于C#的@符号用于转义\

可能重复:
Java相当于C#的逐字字符串@

C#中的一个例子是:

string path = @"C:\myfile.txt";
Run Code Online (Sandbox Code Playgroud)

另一个例子是这个问题的答案.

c# java escaping

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

当只有一个Path包含根元素时,为什么Java 7的新Path对象不能重新激活?

按照java.nio.file.Path:

如果只有一个路径具有根组件,则无法构建相对路径.

为什么会这样?为什么不可能像这样重新激活:

Path path1 = Paths.get("/home/test");
Path path2 = Paths.get("home");

// throws an IllegalArgumentException
Path path3 = path1.relativize(path2);
Run Code Online (Sandbox Code Playgroud)

我曾经想过path3会导致相对路径../.Path如果没有定义根元素,为什么返回一个表示文件系统中两个目录位于同一级别的结果是有效的,但是,当只有一个路径定义根元素时(如上所示),没有相对路径可以有待确定?

Path path1 = Paths.get("home/test");
Path path2 = Paths.get("user");

// results in ../../user
Path path3 = path1.relativize(path2);
Run Code Online (Sandbox Code Playgroud)

java nio java-7

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

DAO和依赖注入,建议?

这是我第一次使用DAO模式.从我到目前为止所读到的,实现这种模式将帮助我从任何持久性实现中分离我的调用代码(控制器) - 正是我想要的; 也就是说,我不想被重新使用任何特定的数据库或第三方库.

我正在使用MongoDB和morphia(作为示例)创建一些测试代码(以TDD方式),使用morphia提供的BasicDAO类.

据我所知,扩展BasicDAO<T, V>需要一个接受Morphia和Mongo对象的构造函数; 这些是非常具体的(第三方)类型,我真的不想在DAO类本身之外浮动.

我怎样才能拥有更多可插拔架构?我的意思是,我应该考虑如何配置我的应用程序以使用具有特定配置参数的特定DAO,在实际源外部?

java dao design-patterns mongodb morphia

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

什么时候使用wsgen?

我现在正在阅读JAX-WS.

我已经使用Eclipse和手工成功构建了JAX-WS RI服务.这两种方法都使用了apt.在通过Eclipse将应用程序部署到应用程序服务器或创建战争(使用或不使用sun-jaxws.xml,具体取决于正在使用的容器)并手动部署它时,JAX-WS运行时生成相应的WSDL自动.

什么时候使用wsgen很有用?

jax-ws java-ee wsgen

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

Maven和快照?

我正在做一个快速的项目,其中,我正在直接研究一个不断变化的模块.其他人直接依赖于模块,因此,我将公共接口存根并将其部署到我们的本地Nexus存储库中以0.0-SNAPSHOT供使用.

现在我已经完成了模块的第一次迭代,我试图重新部署更新的工件.阅读有关快照的内容,其他人声称快照应代表当前的主干.这是真的?

Maven在重新部署时会自动增加我的快照版本 - 所以,从那里开始0.0-SNAPSHOT,我0.0-SNAPSHOT只是,它是同一个快照的迭代3或4.什么时候应该翻到0.1-SNAPSHOT?是否有一个插件我可以用来自动化版本更改,而不是手动编辑我的pom?

在集成测试和我们的第一个系统版本的部署之后1.0-RELEASE,我的模块应如何进展?我应该将模块移动到1.0-SNAPSHOT其上并继续吗?是否应该遵循一种方法,还是由开发人员自行决定?

svn versioning conventions nexus maven

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

使用guice将运行时参数传递给构造函数

如果我有以下课程:

public class ObjectDAOMongoDBImpl<T> extends GenericDAOMongoDBImpl<T, ObjectId> implements ObjectDAO<T> {
    public ObjectDAOMongoDBImpl(Class<T> entityClass, Mongo mongo, Morphia morphia, String dbName) {
        super(entityClass, mongo, morphia, dbName);
    }
}
Run Code Online (Sandbox Code Playgroud)

其中,entityClass提供在运行时-我该如何使用吉斯到上述类型的接口绑定?

public class RunnerModule extends AbstractModule {      
    @Override
    protected void configure() {
        bind(GenericDAO.class).to(ObjectDAOMongoDBImpl.class);
    }
}

public class Runner<T, V> {
    GenericDAO<T, V> dao;

    @Inject
    public Runner(GenericDAO<T, V> dao) {
        this.dao = dao;
    }

    public static void main(String[] args) {
        Injector injector = Guice.createInjector(new RunnerModule());
        injector.getInstance(Runner.class);
    }
}
Run Code Online (Sandbox Code Playgroud)

可以定义mongo, …

java dependency-injection guice

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

使用phantomjs在本地文件上使用extjs代理进行ajax调用

我有一个基本的EXT JS商店,它使用代理来访问本地json文件.

例如

...
proxy: {
    type: 'ajax',
    api: {
        read: 'data/mydata.json'
    },
    reader: {
        type: 'json',
        root: 'datas',
        successProperty: 'success'
    }
} 
...
Run Code Online (Sandbox Code Playgroud)

我想用Maven,Jasmine和PhantomJS用Atlassian Bamboo(我的CI服务器)构建和测试我的项目.

当我在本地执行PhantomJS时,如下所示:

$ phantomjs "c:\phantomjs-1.6.1\examples\run-jasmine.js" run-tests.html
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

'waitFor()' finished in 422ms.
 4 specs, 2 failures in 0.075s
Run Code Online (Sandbox Code Playgroud)

发生这种情况是因为PhantomJS无法使用file://协议为EXT JS代理加载本地文件.

我正在关注这个例子,我想知道是否有可能模拟我的代理响应,以便我可以在本地(在我的Bamboo服务器上)使用测试html文件的PhantomJS,而不是必须在Apache等Web服务器中托管项目(我将不得不使用Maven管理外部依赖).

如果没有,是否有任何其他机制(内置于Jasmine,PhantomJS或其他),我可以使用它来实现这一目标?

javascript unit-testing extjs jasmine phantomjs

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