小编qum*_*uma的帖子

Java Lambda - 检查ArrayList to Stream是否为空

我有以下lambda表达式,如果bonusScheduleDurationContainers不为空则工作正常.如果它是空的,我会得到一个NoSuchElementException.我如何在lambda表达式中检查这个?

final List<ScheduleDurationContainer> bonusScheduleDurationContainers
        = scheduleDurationContainersOfWeek.stream()
                                          .filter(s -> s.getContainerType() == ScheduleIntervalContainerTypeEnum.BONUS)
                                          .collect(Collectors.toList());

final ScheduleDurationContainer bonusScheduleDurationContainer
        = bonusScheduleDurationContainers.stream()
                                         .filter(s -> s.getDayOfWeekStartingWithZero() == dayOfWeekTmp)
                                         .findFirst()
                                         .get();
Run Code Online (Sandbox Code Playgroud)

lambda optional java-8 java-stream

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

使用Spring Security,Spring Boot和MongoDB进行密码编码和解码

我使用上面提到的软件堆栈,我需要在保存到数据库之前加密密码.我还需要解密密码,因为当有人更改密码时,她需要输入旧密码,然后新的onw两次,我需要检查旧密码.我搜索了很多,但我仍然不确定这是怎样的正确方法.我找到了这个链接加密,但还有其他提示吗?我也不确定MongoDB是否提供了保护密码的功能.

spring mongodb password-encryption

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

Java随机颜色字符串

我编写了这个java方法但有时颜色String只有5个字符长.有谁知道为什么?

@Test
public void getRandomColorTest() {
    for (int i = 0; i < 20; i++) {
        final String s = getRandomColor();
        System.out.println("-> " + s);
    }
}

 public String getRandomColor() {
    final Random random = new Random();
    final String[] letters = "0123456789ABCDEF".split("");
    String color = "#";
    for (int i = 0; i < 6; i++) {
        color += letters[Math.round(random.nextFloat() * 15)];
    }
    return color;
}
Run Code Online (Sandbox Code Playgroud)

java random colors

8
推荐指数
2
解决办法
7716
查看次数

Angular 5 - 日期 - 语言

我在Angular 5应用程序中使用此表达式:

{{ viewDate | date:'MMM' }}
Run Code Online (Sandbox Code Playgroud)

月份缩写以英语显示.如何将输出切换为德语?

[求助] https://angular.io/api/core/LOCALE_ID

date internationalization angular5

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

Java 8流 - 将列表项转换为子类的类型

我有一个ScheduleContainer对象列表,在流中,每个元素都应该被输入到类型中ScheduleIntervalContainer.有办法做到这一点吗?

final List<ScheduleContainer> scheduleIntervalContainersReducedOfSameTimes

final List<List<ScheduleContainer>> scheduleIntervalContainerOfCurrentDay = new ArrayList<>(
        scheduleIntervalContainersReducedOfSameTimes.stream()
            .sorted(Comparator.comparing(ScheduleIntervalContainer::getStartDate).reversed())
            .filter(s -> s.getStartDate().withTimeAtStartOfDay().isEqual(today.withTimeAtStartOfDay())).collect(Collectors
                .groupingBy(ScheduleIntervalContainer::getStartDate, LinkedHashMap::new, Collectors.<ScheduleContainer> toList()))
            .values());
Run Code Online (Sandbox Code Playgroud)

java java-8

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

Spring Security - REST API - 令牌与cookie

我用Java编写了一个REST-API,并使用Spring Security保护了这个API.程序是这样的:

  1. 前端在后端调用/登录RestService
  2. 后端将令牌返回前端
  3. 在每个REST-API后端调用中,令牌必须放在标头中

这工作正常,但我已经读过(使用Node.JS/Passport.js/Express.js),内部cookie的会话对象可以在没有任何自定义代码的情况下进行传输.

我现在的问题是,如果有更好的方法,那么前端/客户端不需要始终为任何请求将令牌设置到标头中.

spring token spring-security

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

WebSocket 动态添加和删除 Endpoint

我创建了这个 Websocket 项目Spring Websocket,它工作得很好。我将在我的项目中介绍这个例子。我要求可以动态创建或删除/销毁(聊天)组。

在我的 WebsocketConfig- 类端点中,可以通过以下方式静态添加:

registry.addEndpoint("/hello").withSockJS(); (also see below)
Run Code Online (Sandbox Code Playgroud)

是否有可能动态添加端点?我的用例是我有属于一个或多个公司的公司和员工:

         n     m  (m:n relation)
Run Code Online (Sandbox Code Playgroud)

公司<-------->员工

并且可以动态创建公司(通过单击“创建”按钮)。然后可以将之前注册的员工添加到公司。所以这意味着如果创建了一个公司(并且最少有 2 名员工被添加到公司),那么应该添加一个端点。

我很高兴在这个方向上有任何有用的答案。非常感谢!

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
    // Prefix for messages FROM server TO client
    config.enableSimpleBroker("/topic");
    // Prefix for messages FROM client TO server
    config.setApplicationDestinationPrefixes("/app");
    // /app wird beim client - sendName verwendet: stompClient.send("/app/hello", {}, JSON.stringify({ 'name': name
    // }));
}

@Override
public void registerStompEndpoints(final StompEndpointRegistry registry) {
    registry.addEndpoint("/hello").withSockJS();
    } …
Run Code Online (Sandbox Code Playgroud)

spring spring-websocket

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

Java 8 - 填充ArrayList

有没有更好的方法来填充ArrayList这样的(我在Java 7中这样做了):

List<ScheduleIntervalContainer> scheduleIntervalContainers = new ArrayList<>();
scheduleIntervalContainers.add(scheduleIntervalContainer);
Run Code Online (Sandbox Code Playgroud)

java lambda java-8 java-stream

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

使用颜色选择器减少模型更新的数量

我在我的应用程序中使用标准的HTML颜色选择器:

<input type="color" ng-model="vm.currentUser.color" />
Run Code Online (Sandbox Code Playgroud)

如果我单击该颜色选择器的按钮并手动更改颜色,则会经常更新模型.由于我有一个监视vm.currentUser.color,相应的方法也经常被调用,这是有问题的.

有没有办法只在点击颜色选择器的OK按钮时设置模型变量?

颜色选择器的图像

color-picker angularjs

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

角材料-更改单击的垫列表选项的颜色

是否可以更改已选中复选框的默认颜色(mat-pseudo-checkbox-checked):

<mat-selection-list #shoes>
  <mat-list-option *ngFor="let shoe of typesOfShoes">
    {{shoe}}
  </mat-list-option>
</mat-selection-list>
Run Code Online (Sandbox Code Playgroud)

我试过了:

.mat-pseudo-checkbox-checked {
    background-color: #00f;
}
Run Code Online (Sandbox Code Playgroud)

但这没有影响。

angular-material2

6
推荐指数
2
解决办法
9584
查看次数