小编bil*_*.cn的帖子

当一个参数接受Collection <X <?>>时不可能输入

这个问题来自于构造函数的输入javax.validation.ConstraintViolationException.它接受Set<ConstraintViolation<?>>作为参数.

虽然很容易得到一组ConstraintViolation <X>,其中X是具体类型,但似乎不可能从任何类型良好的API获得一组"ConstraintViolation <?>".如果不使用一些复杂的演员阵容,就不可能将前者转换为后者.(铸造Set<? extends ConstraintViolation<?>>然后到Set<ConstraintViolation<?>>.)

所以你们认为API是错误的还是我错了(以及为什么)?

java generics types

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

TypeScript:当前类的类型作为类型变量

我想在TypeScript中声明一个函数,该函数返回当前实例类型的类型,例如在返回的流畅API中this.

是否有"此类型"的类型变量?(我宁愿不使用丑陋的Java方式X<T extends X<T>>.)

generics typescript

6
推荐指数
2
解决办法
2818
查看次数

是否有可靠的跨浏览器方式在几个DIV之间分配父元素中的剩余空间?

背景

我正在开发一个基于浏览器的UI,需要在没有任何滚动的情况下填满整个屏幕.基本布局是这样的:

布局草图

我想要实现的目标

标题div应具有固定高度(2em),其余4个div/panel应根据我设置的百分比分配屏幕的剩余空间.

我试过的

我发现的最好的解决方案是" CSS - 如何强制元素占父元素剩余/可用空间的100%而不超出它? ",这涉及到使用容器div position:absolute.这适用于所有浏览器,但需要创建一些额外的DIV.此外,由于百分比宽度的不准确,有时可能会迫使面板2在下一行开始.

我之前的解决方案基于CSS3 Flexbox,但该模型存在缺陷,因为在拉伸容器盒之后它不会调整具有百分比高度的子元素(至少Chrome不会).(较新的flex-*属性仅在Chrome中实现,标准仍在变化.)

我也尝试了calc()函数; 但是,它还没有在Chrome中实现.此外,它需要在两个地方硬编码标题元素的高度,我一直试图避免.

编辑:

我在找什么

为了清楚起见,我不是要求一个完美的/纯CSS解决方案(因为似乎没有).如果有人可以建议任何可以做到这一点的jQuery插件或开源框架,那对我来说就足够了.

此外,我不要求在2012年之前向浏览器版本提供任何向后兼容性.(只要解决方案使用的技术在某些浏览器中实现,并且将在不久的将来由Firefox和Chrome实现,它就足够了我.)

css css3

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

Spring同步Hibernate和JMS事务

我正在使用一个同时使用JMS和Hibernate的应用程序.

文档建议如果我想在两个资源之间进行交易,则必须使用JTA.

但是,现在使用@Transaction带注释的DAO方法(和HibernateTransactionManager),这似乎已经起作用了.当我在JmsTemplate上调用send()时,消息不会立即发送,而是在方法返回时使用Hibernate会话提交JMS会话.

如果没有JtaTransactionManager,我不知道这是怎么可能的,所以我检查了源代码.事实证明,Hibernate和JmsTemplate的包装器都会使用TransactionSynchronizationManager注册会话,并且在Hibernate会话提交时将提交JMS会话.

这和JTA交易有什么不同.我可以用它来取代后者吗?

java spring hibernate transactions jms

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

如何列出实现给定接口集的类路径上的所有类

大多数IDE允许您轻松地为单个接口执行此操作,但我正在寻找同时实现两个接口的类.无论如何都要自动执行此操作(无需手动打开每个实施者并检查)?

如果没有IDE支持,Spring是否有这样的功能.(我知道我可以获得实现特定接口的bean列表,但我不确定是否可以为所有类执行此操作.)

java ide spring

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

Socket.close()在Socket.connect()期间无效

使用Windows上的默认套接字实现,我无法找到任何有效的停止方法Socket.connect().这个答案表明Thread.interrupt()不会起作用,但Socket.close()会起作用.但是,在我的审判中,后者也没有用.

我的目标是快速,干净地终止应用程序(即在套接字终止后需要完成清理工作).我不想使用超时,Socket.connect()因为可以在合理的超时到期之前终止进程.

import java.net.InetSocketAddress;
import java.net.Socket;


public class ComTest {
    static Socket s;
    static Thread t;

    public static void main(String[] args) throws Exception {
        s = new Socket();
        InetSocketAddress addr = new InetSocketAddress("10.1.1.1", 11);
        p(addr);
        t = Thread.currentThread();
        (new Thread() {
            @Override
            public void run() {
                try {
                    sleep(4000);
                    p("Closing...");
                    s.close();
                    p("Closed");
                    t.interrupt();
                    p("Interrupted");
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }).start();
        s.connect(addr);
    }

    static void p(Object o) { …
Run Code Online (Sandbox Code Playgroud)

java sockets multithreading

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

让 Hibernate Validator 按键验证 Map

我使用 Hibernate Validator (HV) 作为我的 JSR 303 验证器。然而,在 JSR 303 和 HV 的扩展中,似乎没有任何注释来指定约束,例如键必须存在于 Map 中或仅验证与键对应的 Map 值。

我的用例是,仅当 bean 的某些其他属性设置为 true 时,某些映射键才需要具有有效值。目前,我使用了一个假 getter 和一个 @AssertTrue 注释,但我真的很想让它更加基于注释。

java hibernate-validator

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

Angular 2指令现在是"可扩展的"吗?

我对Angular 1的最大问题是扩展(在面向对象的意义上)指令是多么困难.

例如,几乎不可能input[number]在我的自定义小部件上重用该指令,我不得不重新实现所有验证和类型转换代码.

Angular 2组件实现为类,因此它们似乎可以轻松扩展.但是,它们也有@Component非常具体的选择器等注释,这使我不清楚是否可以完全覆盖它们.

那么Angular 2指令实际上是可扩展的吗?

编辑:

好的,"可扩展"不一定是扩展类.它可以创建一个由多个现有指令组成的新指令.我对这种方法的问题是应用子指令的机制是什么?

(这些@Component类不是传统的OO类,其中包含可以分配给子代的方法.它只是一个字段和回调的容器,完全由注释背后的内容驱动.)

angularjs-directive angular2-directives angular

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

用于子列表/部分匹配的 Hamcrest 匹配器?

假设我有一个实际的列表 [1, 2, 3, 4] 并且我想检查它是否包含子列表 [2, 3](即顺序也很重要)。是否有现有的匹配器可以做到这一点?

(有一个命名不当的hasItems方法,它只检查实际列表是否与预期列表中的任何一项匹配......)

java hamcrest

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

按源文件夹筛选调用层次结构

这与Filter Eclipse的"Open Call Hierarchy"只涉及我的公司/项目.

在我的Maven项目中,我对代码和测试都使用相同的包名,但它们位于不同的源文件夹(main/javatest/java)中.但是,我找不到按源文件夹过滤的选项.

我可以过滤掉一些测试方法,因为类名以"Tests"结尾,但情况并非总是如此.

java eclipse

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