Java ClassCastException这绝对没有意义

问题描述 投票:1回答:1

我得到以下转换异常:

java.lang.ClassCastException: com.model.Bucket cannot be cast to java.util.Optional
    at com.service.BucketServiceTest.testGetById(BucketServiceTest.java:65)

但是,在我的代码中没有任何地方我试图转换为Optional

@Test
public void testGetById() {
    Mockito.when(bucketRepository.findById(anyLong())).thenAnswer(invocationOnMock -> testBucket);
    String bucketName = bucketService.getBucketById(testBucket.getId()).getName();
    assertEquals(bucketName, testBucket.getName());
}

第65行是String bucketName = bucketService.getBucketById(testBucket.getId()).getName();

getBucketById方法返回类型bucket而不是optional

@Transactional(readOnly = true)
public Bucket getBucketById(long id) {
    return (Bucket) bucketRepository.findById(id).orElse(null);
}

因此我不知道Bucket在哪里被投射到Optional,所以这个错误对我来说完全没有意义。

casting optional classcastexception
1个回答
0
投票

如果有人有同样的问题,它对我有用

当(repository.findById(任何()))thenReturn(Optional.of(元件));

© www.soinside.com 2019 - 2024. All rights reserved.