小编jlp*_*jlp的帖子

Scala中的":+"是什么意思

我看到一些Scala代码写成:

 def next(): Array[String] = someVariable.next() :+ iterator.key
Run Code Online (Sandbox Code Playgroud)

哪里someVariable有一个方法next()来获取下一行,迭代器是类型Iterator[String].

:+这里的意思是什么?

scala

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

如何使用Scala DataFrameReader选项方法

Scala DataFrameReader有一个函数"option",它具有以下签名:

 def  option(key: String, value: String): DataFrameReader 
   // Adds an input option for the underlying data source. 
Run Code Online (Sandbox Code Playgroud)

那么什么是底层数据源的"输入选项",有人可以在这里分享一个如何使用这个函数的例子吗?

scala apache-spark

7
推荐指数
2
解决办法
7684
查看次数

空值的 Java 验证 @min @max 注释

我已经验证了以下字段,

@Min(1)
@Max(500)
private int length;
Run Code Online (Sandbox Code Playgroud)

但是,长度不是必填字段,但是当我没有在输入中提供“长度”时,出现以下错误:

   "Validation error, message = must be greater than or equal to 1, path = length"
Run Code Online (Sandbox Code Playgroud)

查看@min 和@max 文档,它说“空元素被认为是有效的”。我知道。如果@min @max 仅用于原始类型,那么为什么文档提到“null”元素被认为是有效的?有人可以让我知道如何解决验证问题吗?非常感谢。

java validation max min

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

使用 Feign Client 时有没有办法添加多个标头

我有一个 Feign 客户端来访问需要两个标头的 createUser 端点:用户名和密码。我知道如何添加一个标头,但如何向请求添加两个标头?

@FeignClient(name = "client", url = "https://abc.abc.com/user/", configuration = FeignClientConfig.class)
public interface MyFeignClient {

@Headers("username_header: {username}")  // how do I add "password" here.
@PostMapping(value = "v1/users")
void createUser((@Param("username") String username, User userRequest);
Run Code Online (Sandbox Code Playgroud)

}

更新:现在根据下面的答案,我将界面主体更改为:

@Headers({"username_header: {username}", "password_header: {password}"}) 
@PostMapping(value = "v1/users")
void createUser(@Param("username") String username, 
                @Param("password") String password,
                User userRequest);
Run Code Online (Sandbox Code Playgroud)

调用它的代码是:

feignClient.createUser("me", "123", userObj);
Run Code Online (Sandbox Code Playgroud)

然后我收到错误:

 org.springframework.beans.factory.BeanCreationException: Error creating bean,
 nested exception is java.lang.IllegalStateException: Method has too many Body parameters: 
 feignClient.createUser(java.lang.String,java.lang.String, User)
Run Code Online (Sandbox Code Playgroud)

java spring-cloud-feign openfeign

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

如何检查文件名是否与shell脚本中的regex匹配

我有一个shell脚本需要检查文件名是否与某个正则表达式匹配,但它总是显示"不匹配".谁能告诉我我的代码有什么问题?

fileNamePattern=abcd_????_def_*.txt
realFilePath=/data/file/abcd_12bd_def_ghijk.txt

if [[ $realFilePath =~ $fileNamePattern ]]
then
    echo $realFilePath match  $fileNamePattern
else
    echo $realFilePath not match $fileNamePattern
fi
Run Code Online (Sandbox Code Playgroud)

bash shell

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

用于将类传递给函数的Scala语法

有人可以在Scala中解释这种语法吗?我知道"cd"属于Class类型而"_"是通配符,但"<:"在这里做什么?谢谢.

   def func( cd: Class[_ <: CompressionCodec])
Run Code Online (Sandbox Code Playgroud)

scala

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

如何使用Java将文件分解为基于正则表达式的标记

我有一个以下格式的文件,记录由换行符分隔,但有些记录在其中有换行符,如下所示.我需要获取每条记录并单独处理它们.该文件的大小可能只有几个Mb.

 <?aaaaa>
 <?bbbb
     bb>
 <?cccccc>
Run Code Online (Sandbox Code Playgroud)

我有代码:

 FileInputStream fs = new FileInputStream(FILE_PATH_NAME);
 Scanner scanner = new Scanner(fs);
 scanner.useDelimiter(Pattern.compile("<\\?"));
 if (scanner.hasNext()) {
     String line = scanner.next();
     System.out.println(line);
 } 
 scanner.close();
Run Code Online (Sandbox Code Playgroud)

但我得到的结果有开头<\?删除:

aaaaa>
bbbb
   bb>
cccccc>
Run Code Online (Sandbox Code Playgroud)

我知道Scanner会消耗任何与分隔符模式匹配的输入.我能想到的只是将分隔符模式添加回每个记录中的mannully.

有没有办法不删除分隔图案?

java regex java.util.scanner

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

Spock 测试:调用太少

我正在为一个 Service 类编写 Spock 测试,该类的方法调用 Spring Boot 应用程序中 Dao 类中的另一个方法。但是,我得到:

 Too few invocations for:
 1 * dao.getAddressFromSomewhere("me")   (0 invocations)
 Unmatched invocations (ordered by similarity):
 None
Run Code Online (Sandbox Code Playgroud)

下面是源代码和测试代码,有人可以告诉我我做错了什么吗?看来 dao 模拟根本没有被调用并返回“USA”。我在网上做了一些研究,但找不到我做错了什么。

@Service
public class ServiceClass 
{
    @Autowired
    private DaoClass dao;

    public String getAddress(String name) {         
        return dao.getAddressFromSomewhere(name);
    }
}

@Component
public class DaoClass {
     public String getAddressFromSomewhere(String name) {
     // get address from DB
     ......
     }
}
Run Code Online (Sandbox Code Playgroud)

这是我的 Spock 测试代码:

@ContextConfiguration
@Import(ServiceClass.class)
public class Test extends Specification {

@Autowired
private DaoClass dao;
@Autowired …
Run Code Online (Sandbox Code Playgroud)

groovy spock spring-boot

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

Java 8 异常:com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer 没有默认(无参数)构造函数

我有一个具有字段的模型类:

 @JsonDeserialize(using = InstantDeserializer.class)
 @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
 private OffsetDateTime offsetDt;
Run Code Online (Sandbox Code Playgroud)

当这个模型的请求发送到服务器时,我的控制器抛出异常:

Caused by: java.lang.IllegalArgumentException: 
Class com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer 
has no default (no arg) constructor
Run Code Online (Sandbox Code Playgroud)

pom.xml 具有 2.8.11 版本的依赖项:

 <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-jsr310</artifactId>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

我知道这是由 @JsonDeserialize 需要无参数构造函数引起的,但是有解决方法吗?非常感谢。

java json jackson jsr310 fasterxml

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

Spring JPA 实体类可以包含不在数据库表中的非数据库字段吗

我在 SpringBoot 中使用 Spring JPA 和 Spring Data Rest。我有一个名为 user 的数据库表和一个用于该表的实体。我没有这个应用程序的控制器。

@Entity
@Table(name = "USER")
public class User implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "USER_ID")
    private Integer userid;

    @Basic(optional = false)
    @Column(name = "USER_NAME")
    private String username;
} 
Run Code Online (Sandbox Code Playgroud)

现在,我需要再添加一个字段,它不是 USER 表中的一列。某些监视工具将使用它来进行跟踪。

@Entity
@Table(name = "USER")
public class User implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "USER_ID")
    private Integer userid;

    @Basic(optional = false)
    @Column(name = "USER_NAME")
    private String username;

    private …
Run Code Online (Sandbox Code Playgroud)

java spring-data-jpa spring-data-rest spring-boot

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