小编art*_*mka的帖子

对局部变量进行同步

今天我面对constructServiceUrl()的是org.jasig.cas.client.util.CommonUtils班上的方法.我觉得他很奇怪:

final StringBuffer buffer = new StringBuffer();

synchronized (buffer)
{
    if (!serverName.startsWith("https://") && !serverName.startsWith("http://"))
    {
        buffer.append(request.isSecure() ? "https://" : "http://");
    }

    buffer.append(serverName);
    buffer.append(request.getRequestURI());

    if (CommonUtils.isNotBlank(request.getQueryString()))
    {
        final int location = request.getQueryString().indexOf(
                artifactParameterName + "=");

        if (location == 0)
        {
            final String returnValue = encode ? response.encodeURL(buffer.toString()) : buffer.toString();

            if (LOG.isDebugEnabled())
            {
                LOG.debug("serviceUrl generated: " + returnValue);
            }

            return returnValue;
        }

        buffer.append("?");

        if (location == -1)
        {
            buffer.append(request.getQueryString());
        }
        else if (location > 0)
        {
            final int …
Run Code Online (Sandbox Code Playgroud)

java multithreading

39
推荐指数
3
解决办法
9260
查看次数

Scala的泛型

我想为进程序列编写一个函数,如下所示:

def wrap[A >: Seq[_], B](seq : A)(f : () => B): Option[B] = {
    if(seq.isEmpty) None
    else Some(f())
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用错误:

error: value isEmpty is not a member of type parameter A
Run Code Online (Sandbox Code Playgroud)

if(seq.isEmpty)无

我做错了什么?

scala

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

标签 统计

java ×1

multithreading ×1

scala ×1