小编Cha*_*eed的帖子

在java中,synchronized块中的返回值看起来像坏样式.真的有关系吗?

我有一个WeakReference的Collections.synchronizedList,_components;

我写了类似下面的内容,期待编译器抱怨:

public boolean addComponent2(Component e) {
    synchronized (_components) {
        return _components.add(new WeakReference<Component>(e));
    }        
}
Run Code Online (Sandbox Code Playgroud)

但编译器非常满意.请注意,List.add()返回TRUE.好吧,从synchronized块的任何退出都会释放锁,但是这个LOOK不是很奇怪吗?它有点像块中的"洞",类似于在循环中使用return.

你会很乐意维护这样的代码吗?

synchronized-block

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

在OS X Swift应用程序中单击按钮时,Xcode打印"Hello World"的方式?

我是一位经验丰富的Java和Visual Studio开发人员,但我刚开始使用Swift和Xcode.我是一个彻头彻尾的菜鸟,从来没有写过一条客观的线索.当我点击我在应用程序的"故事板"视图中添加的按钮时,我想打印"Hello World".但我无法弄清楚如何让Xcode在swift源代码文件中的任何地方插入事件方法.我读过"The Swift Programming Language"的%60,但我还不知道任何可可api.大多数示例引用了Swift应用程序中不存在的objective-c文件.我也没有使用iOS平台,因此我怀疑我粘贴的一些示例(即@IBAction func buttonTapped)失败,因为它们不适用于OS X应用程序.

我会很感激有点帮助:)

macos xcode cocoa swift

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

如何从非模块化依赖项的 GAV 坐标中编写 module-info requires 语句?

我正在将旧的 Java 应用程序转换为模块化的应用程序。它是一个 Gradle 项目,依赖项如下所示:

dependencies {
    implementation 'org.jopendocument:jOpenDocument:1.3'
    implementation 'xom:xom:1.3.2'
}
Run Code Online (Sandbox Code Playgroud)

在 App 类中,我的导入是:

dependencies {
    implementation 'org.jopendocument:jOpenDocument:1.3'
    implementation 'xom:xom:1.3.2'
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个 module-info.java 文件。但是当我这样做时,我的应用程序将无法编译,因为requiresmodule-info 文件中的指令是错误的。

import nu.xom.Document;
import nu.xom.Element;
import nu.xom.Serializer;
import org.jopendocument.dom.spreadsheet.MutableCell;
import org.jopendocument.dom.spreadsheet.Sheet;
import org.jopendocument.dom.spreadsheet.SpreadSheet;
Run Code Online (Sandbox Code Playgroud)

模块名称xomjOpenDocument不足。但是我不知道这些依赖项应该是什么,也不知道如何重新配置​​ Gradle;如果那是我需要做的。

当我省略任一requires语句时,相应的imports 无法解析。我没有查看 JAR 文件。但我不认为任何一个工件是模块化的。

我正在使用 Gradle 5.6.2,我的目标是 Java 11。

java java-platform-module-system java-module module-info java-11

5
推荐指数
0
解决办法
115
查看次数

除了使用find之外,只在dirs上设置x位的方法

通常,我发现自己需要为某人创建一个可执行目录树,即:

find . -type d -exec chmod ug+x {} \;
Run Code Online (Sandbox Code Playgroud)

但是我不喜欢find的开销,并为每个目录运行一个"新的"chmod.

你们有更喜欢的选择吗?为什么?

bash shell find chmod

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

在 PowerShell 数组中连接字符串

我想使用 PowerShell 来自动化 diskpart.exe,但 PowerShell 构建的脚本参数被视为无效。例如,下面的简单的 diskpart 脚本按预期工作:

$diskDetailsDPCom=@(
    "select disk 0",
    "detail disk",
    "exit"
)
$diskDetailsDPCom | diskpart
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试通过连接变量或文字“0”来构建“select disk”命令时,diskpart 失败并显示The arguments specified for this command are not valid.

$diskDetailsDPCom=@(
    "select disk " + "0",
    "detail disk",
    "exit"
)
$diskDetailsDPCom | diskpart
Run Code Online (Sandbox Code Playgroud)

这里发生了什么,我该如何继续?

powershell

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