> val fx1 = (x: Int) => x + 1
fx1: Int => Int = $$Lambda$1059/1521946103@6764201e
> fx1(1)
res7: Int = 2
> def fx2 = (x: Int) => x + 1
fx2: Int => Int
> fx2(2)
res8: Int = 3
> def fx3(x: Int) = x + 1
fx3: (x: Int)Int
> fx3(3)
res9: Int = 4
其在形式定义上和J8类似:
Plus xpy = (xx, yy) -> xx + yy;
import java.lang.reflect.InvocationHandler
import org.slf4j.{Logger, LoggerFactory}
import org.springframework.kafka.listener.config.ContainerProperties
import java.lang.reflect.{Proxy => JavaProxy}
import org.springframework.kafka.listener.MessageListener
class MessageListenerProxyFactory {
private val log: Logger = LoggerFactory.getLogger(classOf[ProducerProxyHandler])
def getProxy(containerProperties : ContainerProperties): MessageListener[_, _] = {
var messageListener = containerProperties.getMessageListener
var proxy : Object = null
if (messageListener != null) {
var handler: InvocationHandler = new MessageListenerProxyHandler(messageListener)
proxy = JavaProxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), Array[Class[_]](classOf[MessageListener[_,_]]), handler);
}
return classOf[MessageListener[_,_]].cast(proxy);
}
}
fx1: Int => Int = $$Lambda$1059/1521946103@6764201e
> fx1(1)
res7: Int = 2
> def fx2 = (x: Int) => x + 1
fx2: Int => Int
> fx2(2)
res8: Int = 3
> def fx3(x: Int) = x + 1
fx3: (x: Int)Int
> fx3(3)
res9: Int = 4
其在形式定义上和J8类似:
Plus xpy = (xx, yy) -> xx + yy;
import java.lang.reflect.InvocationHandler
import org.slf4j.{Logger, LoggerFactory}
import org.springframework.kafka.listener.config.ContainerProperties
import java.lang.reflect.{Proxy => JavaProxy}
import org.springframework.kafka.listener.MessageListener
class MessageListenerProxyFactory {
private val log: Logger = LoggerFactory.getLogger(classOf[ProducerProxyHandler])
def getProxy(containerProperties : ContainerProperties): MessageListener[_, _] = {
var messageListener = containerProperties.getMessageListener
var proxy : Object = null
if (messageListener != null) {
var handler: InvocationHandler = new MessageListenerProxyHandler(messageListener)
proxy = JavaProxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), Array[Class[_]](classOf[MessageListener[_,_]]), handler);
}
return classOf[MessageListener[_,_]].cast(proxy);
}
}