我是科特林新手。面临反射和泛型的问题。下面是我的代码。
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 …
我正在将现有的 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) 在实现 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) atmosphere ×1
javascript ×1
jsf ×1
kotlin ×1
nestjs ×1
primefaces ×1
socket.io ×1
spring-boot ×1