小编Bar*_*lom的帖子

在Java中将锁转移到生成的线程

有没有办法在Java中做这样的事情(可能使用Lock而不是synchronized):

synchronized(lock) {

     Thread t = spawnThread(new Runnable() {

         synchronized(lock) {
            doThing();
         }

     });

     transferLockOwnership(lock, t);

}
Run Code Online (Sandbox Code Playgroud)

具体来说,我想替换这样的代码:

    synchronized (lock) {

        sendResponse(response);

        doThingsAfterSending();

    }
Run Code Online (Sandbox Code Playgroud)

有这样的事情:

    synchronized (lock) {

        Thread t = spawnThread(new Runnable() { @Override public void run() {
            synchronized(lock) { doThingsAfterSending(); }
        }});

        transferLockOwnership(lock, t);

        return response;

    }
Run Code Online (Sandbox Code Playgroud)

java multithreading locking

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

为什么这个正则表达式不匹配?

我确信这类问题会在这里发布很多.我有这个正则表达式:

^\[.*\]
Run Code Online (Sandbox Code Playgroud)

哪个应该匹配

[Test]Hi there
Run Code Online (Sandbox Code Playgroud)

根据RegexPal,确实如此.但是,在这个Java SCCE中它没有:

final String pat = "^\\[.*\\]";
final String str = "[Test]Hi there";
System.out.println(pat);
System.out.println(str);
System.out.println(str.matches(pat));
Run Code Online (Sandbox Code Playgroud)

输出:

^\[.*\]
[Test]Hi there
false
Run Code Online (Sandbox Code Playgroud)

为什么不匹配?

java regex

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

Gradle 4.4-> 4.10:正在下载的依赖项不再显示

我一直在使用Gradle 4.4,从Maven Central或任何存储库下载依赖项时,它将打印stdout如下:

Download https://repo.maven.apache.org/maven2/org/apache/commons/commons-lang3/3.3.2/commons-lang3-3.3.2.pom
Run Code Online (Sandbox Code Playgroud)

但是,升级到Gradle 4.10后,它不再显示了,只是挂了一段时间而没有输出,这使开发人员想知道发生了什么。

是否有命令行标志或其他选项可以将此输出恢复原状?

gradle

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

短网址冲突.首选项目或项目列表?

我正在构建一个包含教程和其他内容的网站.我正在尝试找到一个好的URL结构.但是,我有一个冲突:

tutorials/ <-- list of all tutorials
tutorials/a-very-cool-tutorial <-- points to the very cool tutorial
tutorials/java <-- a list of tutorials tagged java
tutorials/java+soap <-- a list of tutorials tagged java and soap
tools/soap <-- soap tools
tools/wsdl-generator <-- points to the tool
resources/foo <-- resources for a foo
resources/foo+bar <!-- resource for a foo and a bar
tutorials/java?sort=newest
tutorials/php?showhidden=yes&count=30
Run Code Online (Sandbox Code Playgroud)

自动解决差异是不可能的,因此必须更改其中一个.我应该做哪一个

tutorials/show/a-very-cool-tutorial
   VS
tutorials/list/java
or list-of-tutorials or something like that?
Run Code Online (Sandbox Code Playgroud)

我倾向于使用tutorials/list /(以及重定向教程/)

url seo short-url

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

在C#反射中获取"类型"的类型

这在文档中比我想象的更难找到.无论如何,我有一些例子Type.我怎样才能知道它们是代表类,方法,接口等?

class Bla { ... }
typeof(Bla).GetKindOrWhatever() // need to get something like "Class"

(我在Linux上使用Mono,但这不应该影响问题,我正在制作可移植的代码)

c# reflection

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

Flash TextField,动态大小

我正在构建文本框以在Flash中显示可变长度的消息.我的问题很简单,但答案可能不是.

我有:

  • 我想要显示的字符串.
  • 字体信息.
  • 我希望文本字段具有的宽高比.

如何计算显示我给它的文本所需的文本字段的宽度和高度,仅此而已?

flash fonts text actionscript actionscript-3

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

将路径+文件列表组合到绝对文件列表

如果我的shell脚本中有这些数据:

DIR=/opt/app/classes
JARS=a.jar:b.jar:c.jar
Run Code Online (Sandbox Code Playgroud)

如何将其与字符串组合

/opt/app/classes/a.jar:/opt/app/classes/b.jar:/opt/app/classes/c.jar
Run Code Online (Sandbox Code Playgroud)

在Shell/Bash脚本中?

bash shell path

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

如果是bash中的树,那么"大"

if [ "$1" == "on" ]; then

        echo "Maintenance going on"
        echo "<maintenance/>" > $MFILE

else if [ "$1" == "off" ]; then

        echo "Maintenance going off"
        rm $MFILE

else if [ "$1" == "status" ]; then

        if [ -f $MFILE ]; then
                echo "Maintenance is ON"
        else
                echo "Maintenance is OFF"
        fi

else

        echo "ERROR: Unknown command $1"
        exit 1

fi
Run Code Online (Sandbox Code Playgroud)

如果我尝试运行此脚本,则会出现"意外的文件结束"错误.我怀疑是因为if/else/else if中出现了问题,但我发现谷歌难以理解语法的例子.这里有人知道吗?

bash shell if-statement sh

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

小于时增加,低于时减小

出于好奇,是否有一种(语言无关的)方法将这两个通用语句组合成一个语句?

if (a < b) a += x;
else if (a > b) a -= x;
Run Code Online (Sandbox Code Playgroud)

也可以用作

if (abs(b - a) < x) a = b;
else if (a < b) a += x;
else if (a > b) a -= x;
Run Code Online (Sandbox Code Playgroud)

哦,既然我正在写这个我正在考虑这样的事情:

if (a != b) a += x * (a < b ? 1 : -1);
Run Code Online (Sandbox Code Playgroud)

但这并没有真正有益于可读性.或许其他方式?

  • =普通语言,不是Brainfuck和喜欢或非常古老的语言

language-agnostic programming-languages

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

很简单的字符串替换失败

final String message =
                        "Please enter the following code in the password reset screen:\n" +
                                "\n"+
                                "{CODE} (((((" + codeStr + ")))))\n" +
                                "If you didn't ask for this code, or don't know what this e-mail is about, you can safely ignore it."
                                .replace("{CODE}", codeStr);
Run Code Online (Sandbox Code Playgroud)

这导致了

请在密码重置屏幕中输入以下代码:{CODE}(((((5RE2GT4FWH)))))如果您没有要求此代码,或者不知道这封电子邮件是什么,您可以安全地忽略它.

怎么这么简单的替换不起作用?我想也许问题是这两个{CODE}看起来相似的实例但实际上是由不同的字符组成的,但是我将其复制粘贴到另一个上面并且它没有修复它.

java replace

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