小编Asa*_*vid的帖子

按'shift'时禁用文本选择

我正在javascript中实现项目选择功能(使用jQuery).item是包含一些html的li.
用户可以单击一个项目(使其选中),然后按住Shift键并单击另一个项目以选择其中的所有项目.这基本上可以正常工作,但是shift-click也会选择(高亮显示)项目内显示的文本(移动点击的基本浏览器功能).有没有办法禁用它?

javascript jquery

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

可以从NHibernate实体的构造函数中调用虚拟属性吗?

看看这个示例代码:

public class Comment
{
    private Comment()
    { }

    public Comment(string text, DateTime creationDate, string authorEmail)
    {
        Text = text;
        CreationDate = creationDate;
        AuthorEmail = authorEmail;
    }

    public virtual string Text { get; private set; }
    public virtual DateTime CreationDate { get; set; }
    public virtual string AuthorEmail { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)

我知道从构造函数调用虚拟成员函数被认为是不好的做法,但是在NHibernate中我需要虚拟属性来支持延迟加载.在这种情况下它被认为是好的吗?

nhibernate

19
推荐指数
1
解决办法
3303
查看次数

两个确切的方法参考不相等

以下测试失败

@Test
public void test() {
    Function<String, Integer> foo = Integer::parseInt;
    Function<String, Integer> bar = Integer::parseInt;
    assertThat(foo, equalTo(bar));
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让它通过?

编辑:我会尝试更清楚地说明我正在尝试做什么.

可以说我有这些课程:

class A {
  public int foo(Function<String, Integer> foo) {...}
}

class B {
  private final A a; // c'tor injected
  public int bar() {
    return a.foo(Integer::parseInt);
  }
}
Run Code Online (Sandbox Code Playgroud)

现在让我说我想为B编写单元测试:

@Test
public void test() {
  A a = mock(A.class);
  B b = new B(a);
  b.bar();
  verify(a).foo(Integer::parseInt);
}
Run Code Online (Sandbox Code Playgroud)

问题是测试失败,因为方法引用不相等.

java java-8

15
推荐指数
1
解决办法
3624
查看次数

我应该如何将对象添加到由聚合根维护的集合中

假设我有一个BlogPost聚合根.它拥有一份清单<Comment>.
BlogPost AddComment签名应如何显示?可以使用:

public void AddComment(Comment comment)
{
    Comments.Add(comment);
}

或者我应该避免在其之外创建对root用户的引用,并执行以下操作:

public void AddComment(string text, string email)
{
    Comment comment = new Comment(text, email);
    Comments.Add(comment);
}

domain-driven-design

13
推荐指数
2
解决办法
2003
查看次数

如何组织集成测试?

在编写单元测试时,我通常每个生产类都有一个测试类,所以我的层次结构看起来像这样:

src/main
  -package1
    -classA
    -classB
  -package2
    -classC
src/test
  -package1
    -classATests
    -classBTests
  -package2
    -classCTests
Run Code Online (Sandbox Code Playgroud)

但是,在进行集成测试时,组织变得不那么严格.例如,我可能有一个测试类,它同时测试classA和classB.你会把它放在哪里?那个一起测试classA,classB和classC的测试类怎么样?

此外,集成测试通常需要外部属性或配置文件.你把它们放在哪里,你是否使用任何命名约定?

architecture integration-testing unit-testing

13
推荐指数
1
解决办法
1694
查看次数

什么是一些值得编程体验的Web应用程序?

最近我进入了web开发(在asp.net mvc中),我正在寻找一些值得编码的想法Web应用程序的想法,最好是在不断增加的难度级别.我的第一个应用程序(我目前正在编码)是一个照片库网站

model-view-controller asp.net-mvc

10
推荐指数
3
解决办法
501
查看次数

模型视图演示者和复合视图

我试图在java swing ui应用程序中遵循MVP(特别是Passive-View)模式.

应用程序的基本设计提醒向导控件.屏幕分为两个主要部分:

  • 积极的观点.
  • 一个静态导航栏,带有导航按钮.

用户可以使用按钮更改活动视图,但始终显示该栏.

在这个场景建模中,我有一堆不同的screers,每个都有自己的演示者,视图界面和视图实现(使用JPanel).然后我有一个Shell演示者,使用JFrame查看intefrace和视图实现.这个想法是shell将首先加载并始终显示,显示底部导航栏并为活动视图留出空间.shell演示者将允许设置当前活动屏幕,有点像这样:

interface View {
}

class Presenter {
    View view;

    public Presenter(View view) {
        this.view = view;
    }

    public View getView() {
        return view;
    }

}

interface ShellView extends View {
    void setActiveView(View activeView);
}

class ShellPresenter extends Presenter {
    private ShellView shellView;

    public void setActivePresenter(Presenter activePresenter) { 
        shellView.setActiveView(activePresenter.getView());
    }
}

class ShellFrame implements ShellView {
    private JFrame frame;
    private JPanel activePanel;
    private JPanel navigationBar;

    public ShellFrame() {
        Container c = frame.getContentPane();
        c.add(activePanel); …
Run Code Online (Sandbox Code Playgroud)

java mvp swing design-patterns passive-view

7
推荐指数
1
解决办法
2894
查看次数

枚举外部驱动器

在java中,您可以使用它File.listRoots()来获取系统中的所有驱动器.

我希望只获得外部驱动器,即USB驱动器,外部硬盘,光驱,软盘等.

有没有办法在java中做到这一点?如果没有,原生C++代码也会很好.在这种情况下,我需要Windows和Linux代码.

c++ java filesystems drivers

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

使用java反射调用匿名类的方法时访问异常

我正在尝试使用事件调度程序来允许模型在更改时通知已订阅的侦听器.事件调度程序接收在调度期间调用的处理程序类和方法名称.演示者订阅模型更改并提供要在更改时调用的Handler实现.

这是代码(对不起,它有点长).

EventDispacther:

package utils;

public class EventDispatcher<T> {
    List<T> listeners;
    private String methodName;

    public EventDispatcher(String methodName) {
        listeners = new ArrayList<T>();
        this.methodName = methodName;
    }

    public void add(T listener) {
        listeners.add(listener);
    }

    public void dispatch() {
        for (T listener : listeners) {
            try {
                Method method = listener.getClass().getMethod(methodName);
                method.invoke(listener);
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

模型:

package model;

public class Model {
    private EventDispatcher<ModelChangedHandler> dispatcher;

    public Model() {
        dispatcher = new EventDispatcher<ModelChangedHandler>("modelChanged");
    }

    public void …
Run Code Online (Sandbox Code Playgroud)

java reflection events anonymous-class access-levels

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

这些空的if块有什么意义?

我正在阅读http-parser的源代码,并遇到了一些带有空块的if语句.这是一个例子(来源)

int
dontcall_message_begin_cb (http_parser *p)
{
  if (p) { } // gcc
  fprintf(stderr, "\n\n*** on_message_begin() called on paused parser ***\n\n");
  abort();
}
Run Code Online (Sandbox Code Playgroud)

评论只提到'gcc'(对我来说)不是很有帮助.这些有什么意义?

c gcc

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