小编Ani*_*dia的帖子

如何在Java中选择两个同名的方法

我正在尝试访问我所创建的类中的方法,但由于它的名称和参数数量相似,我的IDE认为该方法不明确.这是两种方法的模拟:

methodName(X, Y, Z)
methodName(A, Y, Z)
Run Code Online (Sandbox Code Playgroud)

我调用了该方法,并null为了测试目的传递了第一个参数的值.不幸的是,我无法重命名方法,更改参数的顺序或以任何方式修改方法的结构.有没有办法可以区分这两种方法?

java overloading

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

swagger @ApiModelProperty List <String>属性的示例值

我有一个类,其中有一个属性 List<String>

public class MyClass {
    ....
    @ApiModelProperty(position = 2)
    private List<String> productIdentifiers;
    ....
}
Run Code Online (Sandbox Code Playgroud)

此代码生成示例值,如下所示:

{
  "customerId": "1001",
  "productIdentifiers": [
    "string"
  ],
  "statuses": [
    "NEW"
  ]
}
Run Code Online (Sandbox Code Playgroud)

此处显示的示例值无效.我期望的示例值应该是:

{
  "customerId": "1001",
  "productIdentifiers": [
    "PRD1",
    "PRD2",
    "PRD3"
  ],
  "statuses": [
    "NEW"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我尝试将示例属性传递如下,但它没有生成正确的值:

@ApiModelProperty(position = 2, example = "PRD1, PRD2, PRD3")
// This generates -> "productIdentifiers": "PRD1, PRD2, PRD3" // Its not json array

@ApiModelProperty(position = 2, example = "[\"PRD1\", \"PRD2\", \"PRD3\"]")
// This generates -> "productIdentifiers": "[\"PRD1\", \"PRD2\", …
Run Code Online (Sandbox Code Playgroud)

java swagger springfox

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

数组等于忽略顺序

可能重复:
Java:检查数组的相等性(顺序无关紧要)

我有两个数组:

String[] a1 = {"a", "b", "c"};
String[] a2 = {"c", "b", "a"};
Run Code Online (Sandbox Code Playgroud)

我需要检查两者是否包含相同的元素(和相同的长度),而不管元素的顺序如何.

我试过Arrays.equals(a1, a2)但它考虑了元素的顺序. org.apache.commons.lang.ArrayUtils不提供这个东西.

我知道我可以通过创建自己的方法(检查相同的长度,然后对数组进行排序然后使用Arrays.equals(a1, a2))来实现相同的目标,但是想知道这个东西是否在任何API中提供,或者有更聪明的方法来做同样的事情.

java arrays equals

28
推荐指数
3
解决办法
3万
查看次数

从String获取JSONObject

如何JSONObjectHttpServletRequestservlet中获取?

java jquery json jsp servlets

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

Spring MockMvc redirectedUrl with pattern

我有一个简单的PersonController类,它提供save()了从http post请求中持久保存对象的方法.

package org.rw.controller;

import java.sql.Timestamp;
import java.util.List;

import org.rw.entity.Person;
import org.rw.service.PersonService;
import org.rw.spring.propertyeditor.TimestampPropertyEditor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;


@Controller
@RequestMapping(value="/person")
public class PersonController {

    private static final Logger logger = LoggerFactory.getLogger(PersonController.class);

    @Autowired
    private PersonService personService;

    @Autowired
    TimestampPropertyEditor timestampPropertyEditor;


    @InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.registerCustomEditor(Timestamp.class, "dob", timestampPropertyEditor);
    }


    @RequestMapping(value="/save", method=RequestMethod.POST)
    public String save(Model model, Person person) {
        Long …
Run Code Online (Sandbox Code Playgroud)

java junit spring mocking

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

如何使用 JPA 在查询中多次使用相同的参数?

如何在同一个查询中多次使用同一个参数?这是我的查询:

@Query(value = """
        SELECT * FROM person WHERE first_name = ? or last_name = ?
        """, nativeQuery = true)
List<Person> findPerson(String name);
Run Code Online (Sandbox Code Playgroud)

我需要在查询中使用“name”参数两次,该怎么做?

注意:这只是一个虚拟示例,供我理解逻辑。

我试过这个:

@Query(value = """
    SELECT * FROM person WHERE first_name = ?1 or last_name = ?1
    """, nativeQuery = true)
List<Person> findPerson(String name);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

org.postgresql.util.PSQLException: ERROR: syntax error at or near "$1"
Run Code Online (Sandbox Code Playgroud)

我也尝试过这个:

@Query(value = """
    SELECT * FROM person WHERE first_name = :name or last_name = :name
    """, nativeQuery = true)
List<Person> findPerson(@Param("name") String …
Run Code Online (Sandbox Code Playgroud)

sql jpa repository spring-data-jpa spring-boot

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

无法打开eclipse市场

我在ubuntu 13.04 64位上安装了eclipse kepler 64位.

当我尝试打开日食市场时,我收到以下错误:

Cannot open Eclipse Marketplace
Cannot install remote marketplace locations: Cannot complete request to http://marketplace.eclipse.org/catalogs/api/p: Content is not allowed in prolog.
Cannot complete request to http://marketplace.eclipse.org/catalogs/api/p: Content is not allowed in prolog.
Content is not allowed in prolog.
Cannot complete request to http://marketplace.eclipse.org/catalogs/api/p: Content is not allowed in prolog.
Content is not allowed in prolog.
Run Code Online (Sandbox Code Playgroud)

然后我检查了日志,发现以下内容:

eclipse.buildId=4.3.0.M20130911-1000
java.version=1.7.0_25
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_IN
Framework arguments:  -vm /usr/lib/jvm/java-7-openjdk-amd64/jre -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os …
Run Code Online (Sandbox Code Playgroud)

eclipse ubuntu eclipse-marketplace

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

功能循环的可能解决方案

我正在阅读John ResigLearning Advanced JavaScript幻灯片.

当我来到幻灯片-27时,约翰提出了一个测验,如下所示:

测验:我们如何通过回调实现循环?

function loop(array, fn){ 
  for ( var i = 0; i < array.length; i++ ) { 
    // Implement me! 
  } 
} 
var num = 0; 
loop([0, 1, 2], function(value){ 
  assert(value == num++, "Make sure the contents are as we expect it."); 
  assert(this instanceof Array, "The context should be the full array."); 
});
Run Code Online (Sandbox Code Playgroud)

我试图实现,并提出以下代码:

function loop(array, fn){
  for ( var i = 0; i < array.length; i++ ) {
    fn.call(array, …
Run Code Online (Sandbox Code Playgroud)

javascript loops function

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

elasticsearch 更新映射冲突异常

我有一个名为“myproject-error-2016-08”的索引,它只有一种名为“error”的类型。

当我打:

GET myproject-error-2016-08/_mapping
Run Code Online (Sandbox Code Playgroud)

它返回以下结果:

{
   "myproject-error-2016-08": {
      "mappings": {
         "error": {
            "properties": {
               ...
               "responseCode": {
                  "type": "string"
               },
               ...
            }
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

我需要将 responseCode 更新为 not_analyzed,因此我使用以下 reuest :

PUT myproject-error-2016-08/_mapping/error
{
   "properties": {
      "responseCode": {
         "type": "string",
         "index": "not_analyzed"
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

并获得以下异常:

{
   "error": {
      "root_cause": [
         {
            "type": "illegal_argument_exception",
            "reason": "Mapper for [responseCode] conflicts with existing mapping in other types:\n[mapper [responseCode] has different [index] values, mapper [responseCode] has different [doc_values] values, cannot change from …
Run Code Online (Sandbox Code Playgroud)

elasticsearch

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

是Throwable类的printStackTrace()和异步

我正在测试一些代码来读取类路径中可用的文件,但最后我得到了一些与Throwable类的printStackTrace()方法相关的有趣的东西.

这是代码:

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.URL;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;

public class Main {

    public static void main(String[] args) throws IOException, URISyntaxException {
        try {
            System.out.println("before-test1");
            test1(); // will throw exception
            System.out.println("after-test1");
        } catch (Exception e) {
            System.out.println("entering catch-1");
            e.printStackTrace();
            System.out.println("exiting catch-1");
        }

        try {
            System.out.println("before-test2");
            test2();
            System.out.println("after-test2");
        } catch (Exception e) {
            e.printStackTrace();
        }

        try {
            System.out.println("before-test3");
            test3();
            System.out.println("after-test3");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void test1() throws IOException …
Run Code Online (Sandbox Code Playgroud)

java asynchronous exception stack-trace

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