小编Lak*_*ula的帖子

Java错误:比较方法违反了其一般合同

我看到很多关于这个的问题,并试图解决这个问题,但经过一个小时的谷歌搜索和大量的试验和错误,我仍然无法解决它.我希望你们中的一些人能够解决问题.

这就是我得到的:

java.lang.IllegalArgumentException: Comparison method violates its general contract!
    at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:835)
    at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:453)
    at java.util.ComparableTimSort.mergeForceCollapse(ComparableTimSort.java:392)
    at java.util.ComparableTimSort.sort(ComparableTimSort.java:191)
    at java.util.ComparableTimSort.sort(ComparableTimSort.java:146)
    at java.util.Arrays.sort(Arrays.java:472)
    at java.util.Collections.sort(Collections.java:155)
    ...
Run Code Online (Sandbox Code Playgroud)

这是我的比较器:

@Override
public int compareTo(Object o) {
    if(this == o){
        return 0;
    }

    CollectionItem item = (CollectionItem) o;

    Card card1 = CardCache.getInstance().getCard(cardId);
    Card card2 = CardCache.getInstance().getCard(item.getCardId());

    if (card1.getSet() < card2.getSet()) {
        return -1;
    } else {
        if (card1.getSet() == card2.getSet()) {
            if (card1.getRarity() < card2.getRarity()) {
                return 1;
            } else {
                if (card1.getId() == card2.getId()) { …
Run Code Online (Sandbox Code Playgroud)

java migration compare comparator java-7

68
推荐指数
4
解决办法
11万
查看次数

在Spring Cloud AWS中禁用Cloudformation

如何在使用Spring Cloud AWS的Spring启动应用程序中禁用Cloudformation?

在亚马逊上运行我的应用程序时,我一直收到此错误:

...
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.aws.core.env.stack.config.StackResourceRegistryFactoryBean]: Factory method 'stackResourceRegistryFactoryBean' threw exception; nested exception is com.amazonaws.AmazonServiceException: Stack for i-b5ce9e32 does not exist (Service: AmazonCloudFormation; Status Code: 400; Error Code: ValidationError; Request ID: 75b3076a-176d-11e6-90cc-b55a643dc6d6)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
        ... 82 more
Caused by: com.amazonaws.AmazonServiceException: Stack for i-b5ce9e32 does not exist (Service: AmazonCloudFormation; Status Code: 400; Error Code: ValidationError; Request ID: 75b3076a-176d-11e6-90cc-b55a643dc6d6)
        at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1389)
        at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:902)
        at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.ja
...
Run Code Online (Sandbox Code Playgroud)

我不想使用cloudformation.(至少现在(是.)

java spring amazon-web-services spring-cloud spring-cloud-aws

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

绕过 java.net.URL 的弃用

我正在将代码迁移到 Java 20。

\n

在此版本中,java.net.URL#URL(java.lang.String)已被弃用。不幸的是,我在一个类中找不到旧 URL 构造函数的替代品。

\n
package com.github.bottomlessarchive.loa.url.service.encoder;\n\nimport io.mola.galimatias.GalimatiasParseException;\nimport org.springframework.stereotype.Service;\n\nimport java.net.MalformedURLException;\nimport java.net.URI;\nimport java.net.URISyntaxException;\nimport java.net.URL;\nimport java.util.Optional;\n\n/**\n * This service is responsible for encoding existing {@link URL} instances to valid\n * <a href="https://en.wikipedia.org/wiki/Internationalized_Resource_Identifier">resource identifiers</a>.\n */\n@Service\npublic class UrlEncoder {\n\n    /**\n     * Encodes the provided URL to a valid\n     * <a href="https://en.wikipedia.org/wiki/Internationalized_Resource_Identifier">resource identifier</a> and return\n     * the new identifier as a URL.\n     *\n     * @param link the url to encode\n     * @return the encoded url\n     */\n    public Optional<URL> encode(final String …
Run Code Online (Sandbox Code Playgroud)

java

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

JavaFX 2 TableView标题字体颜色

如何更改TableView组件标题的文本颜色?

我累了这个:

.table-view .column-header, .table-view .filler {
    -fx-text-fill: white;
    -fx-border-width: 0, 0;
    -fx-font-size: 12px;
}
Run Code Online (Sandbox Code Playgroud)

这会删除边框,也会更改字体大小,但不会更改字体颜色.

css textcolor tableview javafx-2

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

FXML设置TableView列调整大小策略

如何从FXML设置TableView的调整大小策略?我这样累了,但它不起作用:

<TableView layoutX="20.0" layoutY="20.0" prefWidth="674.0" prefHeight="668.0" fx:id="tableView" fx:constant="CONSTRAINED_RESIZE_POLICY">
    <columns>
        <TableColumn text="First Name" />
        <TableColumn text="Last Name" />
        <TableColumn text="Email Address" />
    </columns>    
</TableView>
Run Code Online (Sandbox Code Playgroud)

java tableview javafx-2 fxml

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

将语言名称转换为ISO 639语言代码

我需要将"匈牙利语","英语"等语言名称转换为ISO 639代码.ISO 639-6将是最好的,但ISO 639-2已经足够好了.实现这一目标的最佳方法是什么?

我应该将英语转换为语言环境并使用getLanguage()获取语言?如果这是唯一的方法如何将像'English'这样的字符串转换为java语言环境?

我的目标是使用ISO 639代码存储书籍语言信息.

java iso locale iso-639-2

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

JavaFX 2设置/获取光标位置

如何在JavaFX 2中设置/获取光标的位置?我累了谷歌搜索答案,但没有发现任何有用的东西.我所能做的就是设置光标的样式.

java mouse position cursor javafx-2

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

自动换行JavaFX 2 ListView

如何在JavaFX 2中创建自动换行ListView(文本太长时多行)?我知道如果我把\n放在字符串上,它将是多行的,但内容太动态了.或者有一个很好的方法在每个'xyz'像素长度之后将\n放到String中.

谢谢!

java listview multiline javafx-2

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

Liquibase mysql 存储换行符

我尝试在 spring-boot 应用程序中使用 liquibase 将一行插入到 mysql 中。与此类似的东西:

<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.9
                      http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
    <changeSet author="laxika" id="20160508-2">
        <insert tableName="news">
            <column name="title" value="Hello world"/>
            <column name="release_date" value="2016-05-09 00:00:00"/>
            <column name="icon" value="update"/>
            <column name="message" value="
                a
                b
                c
                d
            "/>
        </insert>
    </changeSet>
</databaseChangeLog>
Run Code Online (Sandbox Code Playgroud)

由于一些奇怪的原因,liquibase 没有正确地将换行符添加到 sql 中,所以我最终在数据库中有一个长字符串。如何强制 liquibase 插入换行符?

这是我尝试插入的表的架构:

<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.9
                      http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
    <changeSet author="laxika" id="20150922-4">
        <createTable tableName="news">
            <column name="id" type="smallint unsigned" autoIncrement="true">
                <constraints primaryKey="true" nullable="false" />
            </column>
            <column name="release_date" type="date">
                <constraints nullable="false" />
            </column>
            <column name="title" type="varchar(256)">
                <constraints nullable="false" />
            </column> …
Run Code Online (Sandbox Code Playgroud)

mysql liquibase spring-boot

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

Spring 中的 @RequestBody 与 HandlerMethodArgumentResolver

对于同一问题,我有两种解决方案,但我不确定从长远来看哪种解决方案更适合使用。

解决方案1:

控制器是:

@RequestMapping(value = "/skill/leatherworking/curing/start", method = RequestMethod.POST)
public Response startCuring(final UserEntity userEntity, @RequestBody @Valid final CuringCreateRequest curingCreateRequest) {
    final CuringResult result = curingService.cure(userEntity, recipeDefinitionCache.getDefinition(curingCreateRequest.getRecipeId()));
    ...
}
Run Code Online (Sandbox Code Playgroud)

域对象是:

public class CuringCreateRequest {

    @Min(1)
    private int recipeId;

    ...
}
Run Code Online (Sandbox Code Playgroud)

解决方案2:

控制器是:

@RequestMapping(value = "/skill/leatherworking/curing/start", method = RequestMethod.POST)
public Response startCuring(final UserEntity userEntity, @Valid final CuringCreateRequest curingCreateRequest) {
    final CuringResult result = curingService.cure(userEntity, curingCreateRequest.getRecipe());
    ...
}
Run Code Online (Sandbox Code Playgroud)

这里我们还有一个HandlerMethodArgumentResolver:

public class RequestContextHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver {

    /**
     * {@inheritDoc}
     */
    @Override
    public boolean supportsParameter(final …
Run Code Online (Sandbox Code Playgroud)

spring

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

StringBuilder.append()中的OutOfMemoryError甚至有足够的内存

即使将内存大小设置为32 GB并仅将500 MB文件读入构建器,我也会从java.lang.StringBuilder.append中收到OutOfMemoryError。

java.lang.OutOfMemoryError: null
    at java.base/java.lang.AbstractStringBuilder.hugeCapacity(AbstractStringBuilder.java:214) ~[na:na]
    at java.base/java.lang.AbstractStringBuilder.newCapacity(AbstractStringBuilder.java:206) ~[na:na]
    at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:173) ~[na:na]
    at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:538) ~[na:na]
    at java.base/java.lang.StringBuilder.append(StringBuilder.java:174) ~[na:na]
    at com.github.loa.indexer.service.index.base64.Base64Encoder.encode(Base64Encoder.java:31) ~[classes/:na]
Run Code Online (Sandbox Code Playgroud)

java stringbuilder out-of-memory

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