小编Nev*_*eps的帖子

Kotlin 中 lambda 函数参数的默认值

我在构造函数中有这样的带有 lambda 的枚举

enum class EventType(
    val getInfoBlocks: (Book, AuditEntity?) -> List<InfoBlock>? = { _, _ -> emptyList() }
) {...}
Run Code Online (Sandbox Code Playgroud)

现在我像这样使用这个 lambda 函数:

data = it.getInfoBlocks.invoke(deal, null)
Run Code Online (Sandbox Code Playgroud)

我可以不用 null 吗?有没有办法为 null lambda 函数参数设置默认值?

lambda kotlin

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

HttpMediaTypeNotAcceptableException:找不到 @ControllerAdvice 可接受的表示

我需要添加@ControllerAdvice类来处理异常并返回带有来自异常的消息的正文。

但是,当通过邮递员检查时,即使我的 ControllerAdvice 类方法内的断点触发,我仍然会收到带有 500Internal Server Error 的默认正文。

控制台日志:

WARN 24909 --- [nio-8081-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Failure in @ExceptionHandler com.javalibrary.controller.ControllerAdvice#handleApplicationException(RuntimeException)


org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
    at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:315) ~[spring-webmvc-5.3.18.jar:5.3.18]
    at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:219) ~[spring-webmvc-5.3.18.jar:5.3.18]

Run Code Online (Sandbox Code Playgroud)

响应正文:

WARN 24909 --- [nio-8081-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Failure in @ExceptionHandler com.javalibrary.controller.ControllerAdvice#handleApplicationException(RuntimeException)


org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
    at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:315) ~[spring-webmvc-5.3.18.jar:5.3.18]
    at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:219) ~[spring-webmvc-5.3.18.jar:5.3.18]

Run Code Online (Sandbox Code Playgroud)

我的ControllerAdvice课:

{
    "timestamp": "2022-04-18T19:13:14.183+00:00",
    "status": 500,
    "error": "Internal Server Error",
    "path": "/api/v1/book/1"
}
Run Code Online (Sandbox Code Playgroud)

build.gradle插件:

plugins {
    id 'org.springframework.boot' version '2.6.6'
    id …
Run Code Online (Sandbox Code Playgroud)

java rest spring-boot controller-advice

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

如何禁用 MAC OS 的 Google Chrome 自动更新?

有谁知道如何为 MAC OS 禁用 Google Chrome 自动更新?

我试过:

  1. 重命名GoogleSoftwareUpdate文件夹
  2. 更改 Google Chrome 自动更新 URL
  3. defaults write com.google.Keystone.Agent checkInterval 0终端中的命令

它对我不起作用。

macos google-chrome auto-update

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

如何使用 java Stream API 从 Map&lt;Object,Integer&gt; 收集数据到 List&lt;Object&gt;?

我有Map<Nominal, Integer>对象及其计数的地图:

a -> 3
b -> 1
c -> 2
Run Code Online (Sandbox Code Playgroud)

我需要从中得到这样的List<Nominal>

a
a
a
b
c
c
Run Code Online (Sandbox Code Playgroud)

如何使用 Stream API 执行此操作?

java collections stream

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

正则表达式:字符串必须包含单词序列

我有这样的代码:

        String regexp = "[\\w\\W]*(London)[\\w\\W]*(Paris)[\\w\\W]*";

        String test1 = "London Paris";
        boolean t1 =  Pattern.matches(regexp, test1);
        System.out.println(t1);

        String test2 = "London to Paris";
        boolean t2 =  Pattern.matches(regexp, test2);
        System.out.println(t2);

        String test3 = "from London to Paris";
        boolean t3 =  Pattern.matches(regexp, test3);
        System.out.println(t3);

        String test4 = "from (London) -> (Paris)";
        boolean t4 =  Pattern.matches(regexp, test4);
        System.out.println(t4);
Run Code Online (Sandbox Code Playgroud)

我需要所有布尔值都是真的。现在,这个条件已经满足,但是正则表达式在我看来并不是很有效。我怎样才能改变这个?

java

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

Kotlin 数据类的 copy() 值丢失

我有这样的data class

data class BookObject(
    val description: String?,

    val owningCompanyData: OwningCompanyData?,
) {
    var id: String? = null
    var createdAt: Instant? = null
    var createdBy: String? = null
    var modifiedAt: Instant? = null

    fun update(command: CreateOrUpdateBookObjectCommand): BookObject =
        this.copy(
            description = command.description,
            owningCompanyData = command.owningCompanyData
        )
}
Run Code Online (Sandbox Code Playgroud)

当我对update具有完全填充字段的对象使用该函数时,我得到一个具有空id, createdAt, createdBy,modifiedAt字段的对象(它们等于null)。但为什么会出现这种情况呢?为什么这些领域失去了它们的价值?

kotlin 文档说:

使用 copy() 函数复制对象,允许您更改其某些属性,同时保持其余属性不变

kotlin

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