小编Par*_*vil的帖子

获取java中的活动程序列表

我需要使用java检索当前打开的程序列表.以下代码为我提供了所有活动程序的列表,包括任何后台进程,但我只需要一个活动程序列表.

try {
    String line;
    Process p = Runtime.getRuntime().exec(System.getenv("windir") +"\\system32\\"+"tasklist.exe");
    BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
    while ((line = input.readLine()) != null) {
        System.out.println(line);
        }
    input.close();
} catch (Exception err) {
    err.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

我不会意识到目前正在打开哪些程序,因此无法通过搜索一系列名称找到它,因为我看到有些人推荐这种方法.

通过活动程序,我指的是用户可以通过窗口进行交互的任何程序.任务管理器窗口已经将程序(在详细视图中)拆分为应用程序和后台进程,我希望能够检索将在应用程序部分下排序的任何程序.

java cmd windows-10

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

覆盖已弃用的方法是不好的做法吗?

由于该方法show()已被弃用,此代码是不好的做法吗?在这里覆盖可以吗?

public class Window extends JFrame {

    public Window() {
        // Do things.
    }

    public void show() { // <- Comes up with a warning as deprecated code.
        // Do other things.
    }
}
Run Code Online (Sandbox Code Playgroud)

java deprecated deprecation-warning

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

java中的String[]::new和new String[]有区别吗?

我正在使用

ArrayList<String> var1 = new ArrayList<>();
for(condition){
// Add items to var1
}

return var1.toArray(new String[]{})
Run Code Online (Sandbox Code Playgroud)

我的 IDE 建议我将最后一行更改为

return var1.toArray(String[]::new)
Run Code Online (Sandbox Code Playgroud)

这是更好的约定还是编译时或内存使用也有一些好处。

java arrays string arraylist variable-declaration

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

For I 循环在 C# 中忽略 I 的值

我在二维数组网格中存储一个令牌,这个令牌可以一次移动一个位置。当令牌移动时,我使用如下所示的 for 循环检查每个位置。

for (int i = 0; i < 9; i++){
    // Do things
}
Run Code Online (Sandbox Code Playgroud)

因为令牌当前位置将始终为 4 我已经包含了一个 if 语句以避免检查令牌当前位置

for (int i = 0; i < 9; i++){
    if(i != 4){
        // Do things////
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法强制循环在声明中自动跳过 i = 4 或者这是忽略它的最佳方法。

c# for-loop

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