小编Pav*_*nov的帖子

为什么在堆中创建字符串对象和字符串文字的串联?

我有下面的字符串

String str1 = "Abc";//created in constant pool
String str2 = "XYZ";//created in constant pool
String str3 = str1 + str2;//created in constant pool
String str4 = new String("PQR");//created in heap
String str5 = str1.concat(str4);//created in heap 
String str6 = str1 + str4;//created in heap
Run Code Online (Sandbox Code Playgroud)

在这里,我不知道为什么将字符串(在常量池中创建,而另一个在堆中创建)的串联导致在堆中创建新字符串String。我不知道原因,为什么会发生?

java string

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

Java中的eBay Finding API引发“ IllegalArgumentException:不支持:indent-number”异常

我正在使用适用于Java的eBay Finding API,并根据随附的教程执行基本的测试搜索。调用完成,但是java.lang.IllegalArgumentException在执行过程中引发异常。

这是从示例改编的基本代码:

ClientConfig config = new ClientConfig();
config.setEndPointAddress("http://svcs.ebay.com/services/search/FindingService/v1");
config.setGlobalId("EBAY-GB");
config.setApplicationId("my app id");

FindingServicePortType serviceClient =FindingServiceClientFactory.getServiceClient(config);

FindItemsByKeywordsRequest request = new FindItemsByKeywordsRequest();
request.setKeywords("HTC One X");

FindItemsByKeywordsResponse result = serviceClient.findItemsByKeywords(request);

System.out.println("Ack = "+result.getAck());
Run Code Online (Sandbox Code Playgroud)

这是记录的输出:

[ERROR] 2012-11-01 16:52:09,847
fail to get xml string from SOAP message

java.lang.IllegalArgumentException: Not supported: indent-number
Run Code Online (Sandbox Code Playgroud)

有没有其他人经历过这个/不知道为什么?

java exception illegalargumentexception ebay-api

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

如何区分杰克逊库中的空值字段和缺失字段

我们正在使用一个 API,并且该 API 提供 xml 字段。我们必须为消费者将 xml 转换为 json。我们需要以 XML 形式显示我们所拥有的内容,并且只显示那些字段。

  1. 如果字段存在并具有值,则显示它
  2. 如果字段不存在则不显示
  3. 如果字段存在且为空/无值,则按原样显示该字段。

我看到的都是一般注释

@JsonInclude(NON_EMPTY)可用于排除空值。我不能使用它,因为我仍然想查看 json 中具有 null 值的空字段

@JsonInclude(NON_ABSENT)可用于排除空值和“不存在”的值。我无法使用它,因为我仍然想查看 json 中的空字段和空字段。与JsonInclude (NON_NULL)

所以我的问题是,如果我不指定任何这些属性,我可以实现我想要的吗?换句话说,如果我没有指定其中任何一个,杰克逊的行为是显示所有在动态意义上具有空值的字段?我主要关心的是这里的动态响应。对于每个请求,字段可能存在或不存在。我们必须在 json 中显示我们在 XML 中收到的确切内容

java xml json jackson

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

如何在 MySQL AWS Aurora DB InnoDB 引擎中创建全文搜索索引

在尝试在表上添加全文索引时,出现以下错误。

错误代码:1214。使用的表类型不支持 FULLTEXT 索引

在尝试使用 MyTSAM 引擎创建表时,我收到以下警告消息。

0 行受影响,1 条警告:1266 对表使用存储引擎 InnoDB

mysql full-text-search full-text-indexing aurora amazon-aurora

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

如何修复 log4j 中的“NoSuchMethodError”错误

我正在开发一个使用elasticsearch 的java 应用程序。我在java中使用elasticsearch api。我收到 NoSuchMethodError 错误:

java.lang.NoSuchMethodError: org.apache.logging.log4j.Logger.trace(Ljava/lang/String;Ljava/lang/Object;)V

我已经包含了我的 pom 文件

 <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>transport</artifactId>
        <version>5.4.2</version>
    </dependency>
    <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>5.4.2</version>
    </dependency>
    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.2.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.3</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.3</version>
    </dependency>
    <dependency>
        <groupId>commons-configuration</groupId>
        <artifactId>commons-configuration</artifactId>
        <version>1.10</version>
    </dependency>

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.3</version>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

java log4j elasticsearch

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

Java is Crashing When i open intelij idea

It often crashes when I open Intellij Idea.

I have tried different Intellij Idea versions (2019.1, 2018.3).

I installed Oracle JDK (Java SE Development Kit 8u201).

My Os : macOs Mojave.

This is the one part of the crash logs : (it is too long to share all logs here. to see all logs : here paste bin )

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x000000011080b574, pid=4503, tid=0x000000000000a603 …
Run Code Online (Sandbox Code Playgroud)

java intellij-idea

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

如何确定在ANTLR中选择了哪个备用节点

假设我有以下内容:

variableDeclaration: Identifier COLON Type SEMICOLON;
Type: T_INTEGER | T_CHAR | T_STRING | T_DOUBLE | T_BOOLEAN;
Run Code Online (Sandbox Code Playgroud)

那些T_名称只被定义为"整数","char"等.

现在假设我在一个名为LittleLanguage的测试程序的exitVariableDeclaration方法中.我可以参考LittleLanguageLexer.T_INTEGER(等),但我看不出如何确定通过上下文找到了哪些类型.

我以为它会是context.Type().getSymbol().getType()但是它没有返回正确的值.我知道我可以使用context.Type().getText()但我真的不想做字符串比较.

我错过了什么?

谢谢

java antlr4

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

Jenkins 读取文件并报告它是否为空

我正在尝试使用 jenkins 管道生成报告,并设置一个条件来检查生成的文件是否为空。

如果它为空,则转到另一个条件,如果它不为空,则执行其他步骤。

def status = sh(returnStatus: true, script: "git status > output.txt")
File conflict = new File("output.txt")
println "The file ${conflict.absolutePath} has ${conflict.length()} bytes"

if ( "${conflict.length()}" == "0" ) {
    println "\u001B[32m[INFO] conflicts are there"
    def output = readFile('conflict_output.txt').trim()
    println output                                                      
}
Run Code Online (Sandbox Code Playgroud)

这是行不通的。Git status 输出有一些数据,并且不应该是 0 字节。每次我运行它都会进入这个 if 条件。

groovy jenkins

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

Java 8 Completable Future - 并行执行

我正在测试如何CompletableFuture工作。我对如何并行执行任务感兴趣:

try {
          CompletableFuture one = CompletableFuture.runAsync(() -> {
          throw new RuntimeException("error");
          });
          CompletableFuture two = CompletableFuture.runAsync(() -> System.out.println("2"));
          CompletableFuture three = CompletableFuture.runAsync(() -> System.out.println("3"));
          CompletableFuture all = CompletableFuture.allOf(one, two, three);
          all.get();
} catch (InterruptedException e) {
           System.out.println(e);
} catch (ExecutionException e) {
           System.out.println(e);
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,他们将全部被处决。

1 . 当其中一个线程出现异常时,是否可以中断所有正在运行的线程?

2 . 当此代码位于可以从不同线程调用的类方法内部时,它是线程安全的吗?

java multithreading java-8 completable-future

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

是否可以创建多个对象的列表,这些对象采用多个参数?

简化的例子

假设我将一个人定义为:

public class Person (String name, int age)
Run Code Online (Sandbox Code Playgroud)

然后我有一个人的清单...

public class ListOfPeople {
     private ArrayList<Person> people;
}
Run Code Online (Sandbox Code Playgroud)

然后我希望能够一次性创建几个人,做类似的事情...

ListOfPeople myFriends = new ListOfPeople("Chris",33,"Adam",26,"John",50)
Run Code Online (Sandbox Code Playgroud)

我知道我可以分别初始化每个对象,然后添加它们,我很好奇我是否可以通过上面的方式“即时”创建它们

java

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

验证与validate_uniquess_of?

使用之间有区别吗

validates :foo, uniqueness: true

要么

validates_uniqueness_of :foo

我知道这是一个简单的问题,但Google没有帮助

什么时候以及为什么要使用另一个?

ruby-on-rails

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

使用 mockito 在 junit 中编写单元测试时在测试类中进行不必要的存根

方法已作为项目中模块的一部分存在。我正在尝试编写一个测试用例来提高覆盖率。该方法及其关联的类是:

@Component
public class GenericRestTemplate {

    @Autowired
    private RestTemplate restTemplate;

    @Autowired
    CtmLogger ctmLogger;

    public <R, T> R persistGenericModelsAsync(T requestModel, Class<R> responseModel, String url, String postCookies)
            throws JsonProcessingException {
        ctmLogger.debugObject(ValueConstant.SHOPPING_CART_SERVICE_NAME,"REST call", url);
        HttpMethod method = HttpMethod.POST;
        Class<R> responseType = responseModel;
        ResponseEntity<JsonNode> response = null;
        HttpHeaders headers = getHeaders(postCookies);
        HttpEntity<T> requestEntity = new HttpEntity<>(requestModel, headers);
        response = restTemplate.exchange(url, method, requestEntity, JsonNode.class);
        ctmLogger.debugObject(ValueConstant.SHOPPING_CART_SERVICE_NAME,"response", response);
        List<String> cookies = response.getHeaders().get(ValueConstant.SET_COOKIE);
        ctmLogger.info("test:", cookies.toString());
        JsonNode responseBody = response.getBody();
        for (String cookie : cookies) {
            System.out.println(cookie);
            if (cookie.startsWith(((ValueConstant.TX_CART_ID)))) …
Run Code Online (Sandbox Code Playgroud)

java junit mockito spring-boot

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

如何返回对象的名称?

我是Java的新手,所以我不知道我的问题是否有任何道理。但是我会尽力描述它。

如何返回对象的名称?因此,我创建了一个名为的类,Player并创建了以下对象:

Player John = new Player();
System.out.println(John);
Run Code Online (Sandbox Code Playgroud)

我如何使它打印/返回单词“ John”而不是其他任何东西?我将不胜感激,非常感谢!

java

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