小编Chr*_*iss的帖子

io.netty.util.IllegalReferenceCountException:Netty中的refCnt:0

我尝试创建一个代理,然后传递Netty中的所有trafic其他处理程序.我知道我应该管理对ByteBuf的引用,但我无法理解如何做到这一点.我的例子和例外如下.

初始化:

public class HexDumpProxyInitializer extends ChannelInitializer<SocketChannel> {

    private final SslContext sslCtx;

    private final String remoteHost;

    private final int remotePort;

    public HexDumpProxyInitializer(SslContext sslCtx, String remoteHost, int remotePort) {
        this.remoteHost = remoteHost;
        this.remotePort = remotePort;
        this.sslCtx = sslCtx;
    }

    public HexDumpProxyInitializer(String remoteHost, int remotePort) {
        this.remoteHost = remoteHost;
        this.remotePort = remotePort;
        this.sslCtx = null;
    }

    @Override
    public void initChannel(SocketChannel ch) {
        ChannelPipeline p = ch.pipeline();
        if (sslCtx != null) {
            p.addLast(sslCtx.newHandler(ch.alloc()));
        }

        p.addLast(new HexDumpProxyFrontendHandler(remoteHost, remotePort));
        p.addLast(new InboundPrinterHandler());
    }
}
Run Code Online (Sandbox Code Playgroud)

HexDumpProxyFrontendHandler

public …
Run Code Online (Sandbox Code Playgroud)

java netty

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

System.identityHashCode() 对象被 GC 后是否可以返回相同的 hashCode

假设System.identityHashCode(object1)==123object1被垃圾收集。新创建的对象是否可能具有与 GC 之前object2相同的身份哈希码?object1

java jvm hashcode

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

Kotlin:如何在扩展名中调用具有相同名称的方法?

我写了一个startsWith(substring)扩展,它也适用于可为空的字符串。不幸的是,我的实现导致StackOverflowError,导致扩展将自身称为自身而不是String.startsWith(..)方法。

private fun String?.startsWith(sub: String): Boolean = this?.startsWith(sub)==true
Run Code Online (Sandbox Code Playgroud)

可以打电话String.startsWith(..)吗?

extension-methods kotlin

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

是否有类似字节(byte ... b):byte []?

我正在寻找一个简单的方法,我可以传递一些字节,作为varargs,并返回一个byte [],如:

static byte[] byteArray(byte ...bytes){ return bytes;}
Run Code Online (Sandbox Code Playgroud)

到目前为止我发现了什么......

java.lang.Byte没有它
java.util.Arrays没有它
com.google.common.primitives.Bytes.toArray(..)想要一个集合

示例用例: assertThat(actualArray,is(byteArray(1,2,3,4,5)));

java guava

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

如何将泛型参数传递给Object使用方法?

我有一个带有泛型参数的方法foo <T>,需要传递给Object消费条方法.为什么我们需要施展Object,一切都延伸Object

fun <T> foo(arg:T) {
    bar(arg)            //doesn't compile
    bar(arg as Object)  //compiles only with cast to Object
}

fun  bar(x:Object){} 
Run Code Online (Sandbox Code Playgroud)

generics kotlin

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

如何在Java中调用顶级Kotlin函数?

假设在类之外将kotlin函数定义为顶级函数。

Util.kt

class Util {
   fun bar()
}
fun foo(){}
Run Code Online (Sandbox Code Playgroud)

如何foo()在Java中调用方法?

java kotlin

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

标签 统计

java ×4

kotlin ×3

extension-methods ×1

generics ×1

guava ×1

hashcode ×1

jvm ×1

netty ×1