小编Whi*_*cal的帖子

如何在没有HTML的情况下获得多线JLabel(或看起来完全相同的JTextArea)

我不相信多线JLabel的最快解决方案是以下一个(文本来自var,所以我不想手动每个x字符放置HTML代码,它太丑了):

public class JMultilineLabel extends JTextArea{
    private static final long serialVersionUID = 1L;
    public JMultilineLabel(String text){
        super(text);
        setEditable(false);  
        setCursor(null);  
        setOpaque(false);  
        setFocusable(false);  
        setFont(UIManager.getFont("Label.font"));      
        setWrapStyleWord(true);  
        setLineWrap(true);
    }
} 
Run Code Online (Sandbox Code Playgroud)

...确定它不是一个更好的方法来处理这个????

java swing jlabel multiline jtextarea

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

对Collection中的对象具有不同的equals(物理等于和逻辑等于)的机制

有没有像比较器那样的Equalator机制,所以我可以在复制列表中使用不同的等号?

编辑:我的目标是区分当前list1.equals(list2),它检查它是一个浅拷贝还是一个深拷贝与所有对象a.equals(b)和list1.identical(list2)检查它是否只是浅拷贝未经修改的列表

所有这些列表都来自同一型号.有些是自己的副本,因此它们保存指向同一对象的指针,而其他则是深层副本,因此层次结构完全被复制,因为它们具有内容更新,而不仅仅是结构.

我发现自己经常使用listl.equals(list2),但是我需要一种机制来判断它们是否都是TOTAL副本(同一个对象的集合相同)或者有时候它们是LOGICAL副本(通过我自己实现的逻辑等于),所以列表将调用equals和对象应该实现超过a == b的东西.

我的问题是没有Equalator接口,如果我覆盖对象等于我松散了TOTAL EQUAL(a == b)的比较能力

例如,这会很好;

Collections.equal(l1,l2,new Equalator(){
    @Override public boolean equals(Obj1,Obj2){
          //Default lists comparison plus commparison of objects based on
          return (obj1.propertyX() == obj2.propertyX());
    }
});
Run Code Online (Sandbox Code Playgroud)

并且我仍然可以执行list1.equals(list2),因此它们使用默认等于(obj1 == obj2),这仅在包含的对象完全相同时才为真.

第一个操作对于检查列表(可能是模型中完全重新创建的对象的更新列表)是否仍等于旧列表非常有用.

第二个操作对于检查列表是否有用(它是旧版本数据模型的浅层副本),它不包含任何超越的更改,因为它是udpdated版本时在代码中移动它.

编辑:一个很好的例子是有一个Point(x,y)列表.我们应该能够知道两个列表是否相等,因为它们是完全相同的点集或相等,因为它们包含的点在逻辑方式上是相等的.如果我们可以将phyEqual和logEqual都实现为object,并且在任何对象中都有这两个方法,那么list.phyEqual(list2)或list1.logEqual(list2)

java collections list equals comparator

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

jQuery 将禁用属性更改为 true 是否会触发任何事件?

$('#myElem').attr('disabled',true);
Run Code Online (Sandbox Code Playgroud)

在禁用的元素上触发与其关联的任何事件侦听器?(更改(),单击()或其他)

jquery event-listener event-handling

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

动态树关系结构的维度建模

我计划呈现一个数据库,该数据库以 E/R 方式将多个节点的父权关联为 OLAP 多维数据集。我的模型考虑了一个需要动态、可配置的树。

为了最终得到数据库的维度表示,我必须将我的 E/R 数据库转换为星型模式,而表示我的树的自然方法是将其映射到维度层次结构。

当动态树需要可配置时,我的问题就出现了,至于现在,我只能得出结论,每次树更改时,整个维度表都需要根据新的树模式进行非规范化

   **FACT_TABLE**            **DIM_TABLE**
   DIM_TREE   METRIC                   NODE_LEVEL1   NODE_LEVEL2     NODE_LEVEL3 
   dim_id  leaf1_value       dim_id1   root_1        intermediate_1  leaf_1
   dim_id2 leaf2_value       dim_id2   root_1                        leaf_2
Run Code Online (Sandbox Code Playgroud)

如果我想改变树状结构(即增加一个层次,改变它的语义……)怎么办?我是否必须再次更改维度模式来定义新的字段和层次结构?

此外,有时我会被要求提供几个逻辑树来映射常见的叶子集。这意味着我要么为新的逻辑聚合创建一个新维度,要么在 DIM_TABLE 中对其进行非规范化。在这两种情况下,我都需要修改架构并打破粒度,因为该值的计数次数与聚合树引用它的次数一样多。我对吗?

维度/OLAP 建模是否适合这些要求?如果是这样,除了为每个聚合树建模数据库模式和更改层次结构/分类法之外,最好的方法是什么?

tree olap dimensional-modeling olap-cube business-intelligence

5
推荐指数
0
解决办法
239
查看次数

Jetty + Jersey + Jackson,Eclipse(成功)与命令行的不同行为(错误不支持的媒体类型)!

我在Eclipse之外尝试运行Jetty Jersey和Jackson时变得疯狂.

我有一个主要课程:

public class Main {

    public static void main(String[] args) throws Exception {

        ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
        context.addServlet(org.glassfish.jersey.servlet.ServletContainer.class, "/*").setInitParameter(
            "jersey.config.server.provider.classnames", CanaryEndpoint.class.getCanonicalName());

        Server jettyServer = new org.eclipse.jetty.server.Server(8089);
        jettyServer.setHandler(context);
        jettyServer.start();
        jettyServer.join();
    }
}
Run Code Online (Sandbox Code Playgroud)

端点类:

@Path("/endpoint")
public class CanaryEndpoint {

    @POST
    @Path("/test")
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    public String canaryTest(ValueWrapper param) {
        System.out.println("Deserialized Property: " + param.isFlag());
        return "{OK}";
    }
}
Run Code Online (Sandbox Code Playgroud)

和一个实体(反序列化)类:

@XmlRootElement
@XmlAccessorType(XmlAccessType.NONE)
public class ValueWrapper {
    @XmlElement
    public boolean flag;

    public ValueWrapper() {}
    public boolean isFlag()           { return flag; }
    public …
Run Code Online (Sandbox Code Playgroud)

java jetty jax-rs jersey jackson

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

内部类的工厂,不可能?

我想对外部类隐藏内部类的实例化细节。我的内部类需要是非静态的才能访问外部的变量

如果我尝试编写一个 buildNew() 静态方法,它会抛出一个错误,因为在内部类中似乎不可能有静态方法。

我是否必须放弃该功能并实例化父类中的内部类,或者将所有父类的变量传递给内部类以符合静态?

java static class inner-classes java-8

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

将 Callable/Runnable 包装在 FutureTask 中有什么好处?

FutureTask 包装器比简单的 Callable/Runnables 提供什么?我见过一些人以这种方式使用 future,但我不确定它到底给游戏带来了什么。

Callable<Integer> myComputation = () -> {return 0;};
FutureTask<Integer> task = new FutureTask<Integer>(myComputation);

//Why this...       
Executors.newSingleThreadExecutor().execute(task);
task.get();

//...over the conventional approach?
Future<Integer> future = Executors.newSingleThreadExecutor().submit(myComputation);
future.get();
Run Code Online (Sandbox Code Playgroud)

multithreading java.util.concurrent java-8 concurrent.futures

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

JPA 的元注释?

我没有为 JPA 找到任何元注释工具。任何定义用作构造型的自定义注释的方法(类似):

@MyCustomAnnotation 在一个字段上,等于:

@ElementCollection
@CollectionTable(name="foo",joinColumns=@JoinColumn(name="foobar", referencedColumnName = "bar", nullable = true, insertable = false, updatable = false) )
@MapKeyColumn(name = "bla")
@Column(name = "bla")
Run Code Online (Sandbox Code Playgroud)

java spring annotations hibernate jpa

5
推荐指数
0
解决办法
420
查看次数

“轮询SCM” Jenkins功能如何知道哪个轮询的存储库和分支?

我正在配置旧版Jenkins,该旧版Jenkins已安装了带有Git和Gerrit插件的SCM Poll插件。由于我无法理解的事情,即使我没有为git服务器或工作在任何地方配置分支或特定项目,我也可以清楚地看到我的工作是如何处理正确的存储库的(Git Polling Log可以正常工作)而其他项目却没有不会触发它。

是在非常隐蔽的地方配置的吗?在不知道上下文的情况下在工作空间上执行git是否可以正常工作?

我在Jenkins中看不到任何SCM配置选项卡,也无法在Internet中看到快速远程轮询或其他功能,但是我正在使用管道脚本,因此可能该功能已禁用,或者我的git / gerrit插件正在推断上下文不知何故。

例如,在同一部分的“构建触发器”中,我禁用了Gerrit Event选项,并且如果选中此复选框,那么它将要求我提供存储库URL和常用内容

git version-control pipeline jenkins

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

Mockito + Spring + @PostConstruct,mock 初始化错误,为什么会调用@PostConstruct?

我有一个类似的设置:

豆类

private final Map<String, String> configCache = new HashMap<>();
@PostConstruct
private void fillCache() {  (...) configCache.clear();} 
Run Code Online (Sandbox Code Playgroud)

测试配置类:

@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
@Primary
public Bean beanMock() {
    return Mockito.mock(Bean.class);
}
Run Code Online (Sandbox Code Playgroud)

测试类:其中@Autowires的bean。

似乎当 Mockito 在 TestConfig 中创建模拟时,它调用 @PostConstruct 似乎在初始化 map 字段之前调用它,因此它抛出异常。

我的问题是:

  • 为什么 Mockito 调用@PostConstruct?
  • 如何禁用@PostConstruct 进行模拟?

编辑:显然调用是在 Spring 从 Config 的 @Bean 方法中重新获取 bean 之前的实例化之后完成的

java spring unit-testing mockito spring-boot

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