小编Tii*_*ina的帖子

如何编写lambda过滤和映射列表到列表

这是起源:

List<Role> managedRoles = new ArrayList<>();
for (Role role : roles) {
    if (role.getManagedRole() != null) { // a list of Role.
        managedRoles.addAll(role.getManagedRole());
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我要的:

managedRoles = roles.stream().filter(r -> r.getManagedRole() != null).map(role -> role.getManagedRole()).collect(); // how to addAll ?
Run Code Online (Sandbox Code Playgroud)

但是role.getManagedRole() is a List<Role>,我认为addAll需要一些功能.那么如何在Lambda中制作呢?

java lambda

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

netty channelDuplexHandler写不被调用

当它是最后一个处理程序时,应调用ChannelDuplexHandler write方法,但实际上不是。

ChannelPipeline中

 ChannelPipeline p = ...;
 p.addLast("1", new InboundHandlerA());
 p.addLast("5", new InboundOutboundHandlerX());
Run Code Online (Sandbox Code Playgroud)

入站和出站事件的评估顺序分别为1.5和5。

所以我认为write在in调用时应ctx.write()在以下类中channelRead调用:

@ChannelHandler.Sharable
@Component
public class InboundOutboundHandlerX extends ChannelDuplexHandler {


    @Override
    public void channelReadComplete(ChannelHandlerContext ctx) {
        ctx.flush();
    }

    @Override
    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
        ctx.write(msg); // I have also tried writeAndFlush(msg)
    }

    @Override
    public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {
        ctx.write(msg, promise);  
    }

}
Run Code Online (Sandbox Code Playgroud)

是否有一种特殊的技巧来获取最后一个称为双工处理程序的写方法?

netty

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

spring-cloud-zuul 超时配置不起作用

根据 spring cloud zuul 8.1.3 zuul timeout,以下配置应该使 zuul 在 20 秒后超时,但是,它在 10 秒时超时。

server:
  port: 8769
spring:
  application:
    name: service-zuul
zuul:
  host:
    connect-timeout-millis: 20000
    socket-timeout-millis: 60000
zuul:
  routes:
    tp:
      path: /**
      url: http://localhost:9998
ribbon:eureka:enabled: false
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪 从控制台输出可以看出,过滤器和超时异常之间的间隔只有 10 秒。这意味着zuul.host.connect-timeout-millis不起作用。

spring netflix-zuul

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

python3.7 sqlalchemy 没有名为“MySQLdb”的模块

pip install sqlalchemy应该能够安装它需要的所有依赖项。然而,它抱怨No module named MySQLdb。我发现 MySQLdb 仅适用于 python2。这里有什么?

在此处输入图片说明

python sqlalchemy python-3.7

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

当在struct中使用alignof运算符时,它会影响sizeof

struct s11
{
    alignas(16) char s;
    int i;
};
Run Code Online (Sandbox Code Playgroud)
  1. 是否alignas(n) X x意味着它将分配 n 个字节来保存 a X,当X实际上远小于 n 字节时,其余内存将全为 0?

  2. s11.s记忆中的 是什么时候0x0,是否意味着s11.i将会在0x10?然而,以下pdiff0x4

s11 o;
ptrdiff_t pdiff = (char*)&o.i - (char*)&o.s;
Run Code Online (Sandbox Code Playgroud)
  1. 请解释为什么sizeof(s11)不是 16 乘以 2,而是sizeof(s1)8 乘以 3?
struct s1
{
    char s;
    double d; // alignof(double) is 8. 
    int i;
}
Run Code Online (Sandbox Code Playgroud)

编辑:这是我在大量挖掘和代码片段之后发现的,alignas 如何影响结构(类)大小。

alignas(n) X x 表示在内存中x位于偏移多个n字节的地方,从0x00开始。因此,s11.s可以位于0x00、0x10、0x20等位置。因为 …

c++

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

Qt5 slot lambda为什么第一次调用lambda时捕获的局部变量是随机的

在下面的代码中,我认为p2应该打印10。但实际上它打印的是随机值。我开始理解为什么它不是 10,有以下 (1)-(3) 想法。

{
    int m = 10; // local var m
    qDebug() << "m0: " << &m;
    connect(btn2, &QPushButton::clicked, this, [&]() { qDebug() << "m2: " << &m; qDebug() << "p2 " << m; m = 20; qDebug() << "p22 " << m; }); // captured var m
} 
Run Code Online (Sandbox Code Playgroud)

输出:

m0:  0x8ff8ac
p0  10
m2:  0x8ff8ac
p2  11974204
p22  20
m2:  0x8ff8ac
p2  20
p22  20
Run Code Online (Sandbox Code Playgroud)

(1). 第一次调用 lambda 时,其捕获的 varm具有随机值。我认为这可能是因为 local varm …

c++ qt5

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

是什么让Java编译器认为父类不能代表其子类

以下代码会导致错误:

Class<? extends BaseHandler<?, ?>> aClass = resource.getHandler();
BaseHandler<?, ?> baseHandler       = resource.getHandler();
BaseHandler<?, ?> baseHandler       = (BaseHandler<?, ?>) resource.getHandler();;
Run Code Online (Sandbox Code Playgroud)

第一行有效。第二行第三种强制转换有错误:

Inconvertible types; cannot cast 'java.lang.Class<capture<? extends c.c.BaseHandler<?,?>>>' to 'c.c.BaseHandler<?,?>'
Run Code Online (Sandbox Code Playgroud)

我是这样认为的: Class<? extend BaseHandler<?, ?>>应该是BaseHandler的子Class类型。那么baseHandler应该代表所有儿童班级。为什么会出现编译错误?

java

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

标签 统计

c++ ×2

java ×2

lambda ×1

netflix-zuul ×1

netty ×1

python ×1

python-3.7 ×1

qt5 ×1

spring ×1

sqlalchemy ×1