小编Hap*_*ppy的帖子

将字符串解析为本地日期不会使用所需的世纪

我正在使用这个DateTimeFormatter:

DateTimeFormatter.ofPattern("ddMMYY")
Run Code Online (Sandbox Code Playgroud)

我想解析字符串150790,我得到了这个错误:

Unable to obtain LocalDate from TemporalAccessor: {DayOfMonth=15, MonthOfYear=7, WeekBasedYear[WeekFields[MONDAY,4]]=2090},ISO of type java.time.format.Parsed
Run Code Online (Sandbox Code Playgroud)

显然,我希望得到以下内容TemporalAccessor:

{DayOfMonth=15, MonthOfYear=7, WeekBasedYear=1990}
Run Code Online (Sandbox Code Playgroud)

你知道我为什么得到2090而不是1990年?

谢谢你的帮助

java date 2-digit-year java-time

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

我们可以模拟构造函数并检查其参数吗?

使用mockk来模拟构造函数,我们可以做类似的事情(取自文档):

class MockCls {
  fun add(a: Int, b: Int) = a + b
}

mockkConstructor(MockCls::class)

every { anyConstructed<MockCls>().add(1, 2) } returns 4

assertEquals(4, MockCls().add(1, 2)) // note new object is created

verify { anyConstructed<MockCls>().add(1, 2) }
Run Code Online (Sandbox Code Playgroud)

我想检查我的构造函数的参数。就像是:

class MockCls(val minValue: Int) {
  fun add(a: Int, b: Int) = minValue + a + b
}

mockkConstructor(MockCls::class)

every { anyConstructed<MockCls>(10).add(1, 2) } returns 14

assertEquals(14, MockCls(10).add(1, 2)) // note new object is created

verify { anyConstructed<MockCls>(10).add(1, 2) } …
Run Code Online (Sandbox Code Playgroud)

kotlin mockk

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

使用DateTimeFormatter解析没有月份的日期

我尝试用这种格式解析日期:ddYYYY.例如,我有字符串141968,我想知道day = 14year = 1968.

我想我必须直接使用一个TemporalAccessorDateTimeFormatter.parse(String),但我找不到如何使用这个结果.在调试时我看到结果是一个java.time.Parsed不公开但包含我想要的字段的信息fieldValues.

我该如何解析这种特殊格式?

谢谢.

java java-8 java-time

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

如何返回多个类型的对象

让我们举个例子来简化它.我构建了一个构造函数采用的列表integer和a List<Integer>.我的列表将包含给定列表的所有元素乘以integer.我的列表不存储新元素,而是动态计算它们:

class MyList extends AbstractList<Integer> implements RandomAccess {
    private final int multiplier;
    private final List<Integer> list;

    public MyList(int multiplier, List<Integer> list) {
        this.multiplier = multiplier;
        this.list = list;
    }

    @Override
    public Integer get(int index) {
        return list.get(index) * multiplier;
    }

    @Override
    public int size() {
        return list.size();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,我们可以调用new MyList(3, list)list = [0, 1, 2, 3]获得[0, 3, 6, 9].

我想限制开发人员给MyList构造函数一个列表,这也是RandomAccess为了确保他不会破坏性能.

我尝试用以下方法更改构造函数:

public <E …
Run Code Online (Sandbox Code Playgroud)

java collections list random-access

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

如何在 kotlin 注释中写“/*”?

如何/*在跨度代码中写入kotlin 注释?

例如:

/**
 * Defines the route `/route/*`
 */
fun defineRoute() { 
    /* ... */ 
}
Run Code Online (Sandbox Code Playgroud)

现在,根据 Kotlin 的说法,/route/*嵌套注释的开始(所以整个文件都被注释了)。我现在正在使用/route/{*},但这不是一个不错的解决方案。

comments nested kotlin

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

Spring REST如何以不同的方式验证请求体?

随着@Valid我们可以解析请求主体,并与像注解验证它@NotEmpty,@Size(min = 5).有没有办法有多种方法来验证身体?例如,在某些端点上,我想忽略一些验证器(@NotNull在我的例子中).

我的想法是创建一个自定义注释@ValidUnlessNull,但是如何在不必完成工作的情况下实现其解析器@RequestBody(我试图实现a Filter和a HandlerMethodArgumentResolver)?

java validation spring

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

Angular 2异步验证器始终无效

我具有以下表单控件以及我可以编写的最简单的异步验证器:

this.aliasCtrl = this._fb.control('', [(control: AbstractControl) => {
  return new Promise(resolve => {
    console.log(this.aliasCtrl);
    resolve(null);
  });
}]);
Run Code Online (Sandbox Code Playgroud)

我的表单定义是:

this.contactForm = this._fb.group({
  alias: this.aliasCtrl
});
Run Code Online (Sandbox Code Playgroud)

我的表单控件始终无效。这是一个小矮人:http ://plnkr.co/edit/vyr48ke7fWEUwrXy43tn?p=preview 我确定我错过了一些东西,但是我找不到。

感谢帮助。

validation asynchronous angular

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