小编Bha*_*dav的帖子

Kotlin 通过反射调用伴随函数

我是科特林新手。面临反射和泛型的问题。下面是我的代码。

abstract class Action {
  fun sleep(body: Person.() -> Unit){
    var p = Person("a");
    p.body()
    println(p.name + " is zzzzzzz...")
  }
}

class Person(var name:String =""){
  companion object:Action();
}

inline fun <reified T> test(){
  val companionObject = T::class.companionObject
  if (companionObject != null) {
    println(companionObject.javaObjectType)
    val functionEx = companionObject.functions.filter { it.name.equals("sleep") }.first()
    // How to invoke functionEx with block and "this"
  }
}

fun main(args: Array<String>) {
  Person.sleep {
    this.name = "abc"
  }
  test<Person>()
}
Run Code Online (Sandbox Code Playgroud)

我想通过与 main.c 中相同的块代码来调用该sleep函数。functionEx …

kotlin

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

p:push 不适用于大气弹簧靴

我正在将现有的 spring 3、PrimeFaces 5 应用程序转换为 spring 启动应用程序。以下是我的主要依赖项,

    <dependency>
        <groupId>org.primefaces</groupId>
        <artifactId>primefaces</artifactId>
        <version>5.2</version>
    </dependency>

    <dependency>
        <groupId>org.primefaces.themes</groupId>
        <artifactId>all-themes</artifactId>
        <version>1.0.10</version>
    </dependency>

    <dependency>
        <groupId>org.atmosphere</groupId>
        <artifactId>atmosphere-runtime</artifactId>
        <version>2.3.4</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

我的 push servlet bean 的 spring 配置是,

@Bean
ServletRegistrationBean pushServletRegistration(){
    ServletRegistrationBean pushServlet=new ServletRegistrationBean();
    Map<String, String> mapParams=new HashMap<>();
    mapParams.put("org.atmosphere.cpr.broadcasterCacheClass", "org.atmosphere.cache.UUIDBroadcasterCache");
    pushServlet.setServlet(new PushServlet());
    pushServlet.setInitParameters(mapParams);
    pushServlet.addUrlMappings("/primepush/*");
    pushServlet.setName("Push Servlet");
    pushServlet.setAsyncSupported(true);
    pushServlet.setLoadOnStartup(100);
    return pushServlet;
}
Run Code Online (Sandbox Code Playgroud)

以下是我的推送终点

@PushEndpoint("/event")
public class EventMapNotifyResource {

    @OnMessage(encoders = {JSONEncoder.class})
    public Event onMessage(Event coordinate) {
        return coordinate;
    }
}
Run Code Online (Sandbox Code Playgroud)

我在应用程序启动时收到以下信息,

2016-03-22 14:49:48.539  INFO 70488 --- [  restartedMain] org.atmosphere.cpr.AtmosphereFramework   : …
Run Code Online (Sandbox Code Playgroud)

jsf primefaces atmosphere spring-boot

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

RedisIoAdapter 没有调用签名

在实现 RedisIoAdapter 如何在https://docs.nestjs.com/websockets/adapter 中进行描述后,我试图将 socket.io-redis 作为调度程序

import { IoAdapter } from '@nestjs/platform-socket.io';
import * as redisIoAdapter from 'socket.io-redis';

export class RedisIoAdapter extends IoAdapter {
  createIOServer(port: number, options?: any): any {
    const server = super.createIOServer(port, options);
    const redisAdapter = redisIoAdapter({ host: 'localhost', port: 6379 });

    server.adapter(redisAdapter);
    return server;
  }
}
Run Code Online (Sandbox Code Playgroud)

出现错误redisIoAdapter此表达式不可调用。

"socket.io-redis": "^6.0.1"
"@nestjs/platform-socket.io": "^7.6.4",
"@nestjs/websockets": "^7.6.4",
Run Code Online (Sandbox Code Playgroud)

javascript socket.io nestjs

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