小编Lii*_*Lii的帖子

如何从Java代码运行Unix shell脚本?

从Java运行Unix命令非常简单.

Runtime.getRuntime().exec(myCommand);
Run Code Online (Sandbox Code Playgroud)

但是可以从Java代码运行Unix shell脚本吗?如果是,从Java代码中运行shell脚本是一个好习惯吗?

java unix shell

150
推荐指数
8
解决办法
36万
查看次数

istringstream,ostringstream和stringstream有什么区别?/为什么不在每种情况下使用stringstream?

当我会用std::istringstream,std::ostringstream以及std::stringstream为什么不应该我只是用std::stringstream在所有情况(是否有任何的运行时性能问题?).

最后,这有什么不好的(而不是使用流):

std::string stHehe("Hello ");

stHehe += "stackoverflow.com";
stHehe += "!";
Run Code Online (Sandbox Code Playgroud)

c++ string stringstream ostringstream istringstream

150
推荐指数
4
解决办法
6万
查看次数

从枚举中选择一个随机值?

如果我有这样的枚举:

public enum Letter {
    A,
    B,
    C,
    //...
}
Run Code Online (Sandbox Code Playgroud)

随机选择一个的最佳方法是什么?它不需要是生产质量的防弹,但相当均匀的分布将是不错的.

我可以做这样的事情

private Letter randomLetter() {
    int pick = new Random().nextInt(Letter.values().length);
    return Letter.values()[pick];
}
Run Code Online (Sandbox Code Playgroud)

但有更好的方法吗?我觉得这是以前已经解决的问题.

java random enums

149
推荐指数
10
解决办法
13万
查看次数

将项目移动到Eclipse中的另一个文件夹

我通常将工作项目放在桌面上的文件夹中.完成后我只需将它们移动到c:\dev\.问题是我是以一种相当古老的方式做到这一点.

1. move project files
2. delete project on Eclipse
3. create new project on Eclipse on the new location
Run Code Online (Sandbox Code Playgroud)

你们如何移动项目?

如果我可以改变:文件 - >属性 - >资源 - >位置路径,它将变得简单!

示例移动:

c:\user\desktop\project_123
c:\dev\project_123
Run Code Online (Sandbox Code Playgroud)

eclipse eclipse-pdt

146
推荐指数
4
解决办法
8万
查看次数

通过计数Java 8流API进行分组

我试着在Java 8流API中找到一种简单的方法来进行分组,我用这种复杂的方式出来了!

List<String> list = new ArrayList<>();

list.add("Hello");
list.add("Hello");
list.add("World");

Map<String, List<String>> collect = list.stream().collect(
        Collectors.groupingBy(o -> o));
System.out.println(collect);

List<String[]> collect2 = collect
        .entrySet()
        .stream()
        .map(e -> new String[] { e.getKey(),
                String.valueOf(e.getValue().size()) })
        .collect(Collectors.toList());

collect2.forEach(o -> System.out.println(o[0] + " >> " + o[1]));
Run Code Online (Sandbox Code Playgroud)

我很感激你的意见.

java functional-programming java-8

146
推荐指数
5
解决办法
10万
查看次数

在Maven构建期间跳过子模块

我们需要能够在某些环境中跳过子模块.

有问题的模块包含集成测试,需要半小时才能运行.因此我们希望在构建CI服务器时包含它,但是当开发人员在本地构建(并且测试运行)时,我们希望跳过该模块.

有没有办法在配置文件设置中执行此操作?我已经做了一些谷歌搜索,并在这里查看其他问题/答案,并没有找到一个很好的解决方案.

我想一个选项是pom.xml完全从父项中删除该子模块,只需在我们的CI服务器上添加另一个项目来构建该模块.

建议?

continuous-integration maven jenkins

145
推荐指数
4
解决办法
9万
查看次数

null和empty("")Java String之间的区别

null""(空字符串)有什么区别?

我写了一些简单的代码:

String a = "";
String b = null;

System.out.println(a == b); // false
System.out.println(a.equals(b)); // false
Run Code Online (Sandbox Code Playgroud)

这两个语句返回false.看来,我无法找到它们之间的实际区别.

java string null equals referenceequals

141
推荐指数
11
解决办法
35万
查看次数

本地分支,本地跟踪分支,远程分支和远程跟踪分支之间有什么区别?

我刚刚开始使用Git,我在不同的分支之间真的很困惑.任何人都可以帮我弄清楚以下分支类型是什么?

  • 当地分公司
  • 本地跟踪分支
  • 远程分支
  • 远程跟踪分支

他们之间有什么区别?他们如何相互合作?

我想,快速演示代码将非常有用.

git version-control git-remote git-branch

139
推荐指数
4
解决办法
6万
查看次数

防止单元测试但允许在Maven中进行集成测试

我有一个Maven构建,我使用SureFire插件来运行一些单元测试,而FailSafe插件则运行一些集成测试.我想要一种方法来运行FailSafe插件的测试.

对于我来说,在pom中添加不同的配置文件或任何东西并不是一个好的解决方案,因为它是一个多模块构建,我不想编辑每个模块的pom.

skip.testsmaven.test.skipskipTests它停止所有的测试,以及skipITs,其仅停止故障安全插件.

那么,Maven是否有一个命令行标志skipITs,而是具有"onlyITs"的功能?

integration-testing build maven maven-surefire-plugin maven-failsafe-plugin

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

单元测试具有文件系统依赖性的代码

我正在编写一个组件,给定一个ZIP文件,需要:

  1. 解压缩文件.
  2. 在解压缩的文件中查找特定的DLL.
  3. 通过反射加载该DLL并在其上调用方法.

我想对这个组件进行单元测试.

我很想编写直接处理文件系统的代码:

void DoIt()
{
   Zip.Unzip(theZipFile, "C:\\foo\\Unzipped");
   System.IO.File myDll = File.Open("C:\\foo\\Unzipped\\SuperSecret.bar");
   myDll.InvokeSomeSpecialMethod();
}
Run Code Online (Sandbox Code Playgroud)

但人们经常说,"不要编写依赖于文件系统,数据库,网络等的单元测试".

如果我以单元测试友好的方式写这个,我想它看起来像这样:

void DoIt(IZipper zipper, IFileSystem fileSystem, IDllRunner runner)
{
   string path = zipper.Unzip(theZipFile);
   IFakeFile file = fileSystem.Open(path);
   runner.Run(file);
}
Run Code Online (Sandbox Code Playgroud)

好极了!现在它是可测试的; 我可以将测试双打(模拟)提供给DoIt方法.但是以什么代价?我现在必须定义3个新接口才能使这个可测试.究竟,我在测试什么?我正在测试我的DoIt函数是否正确地与其依赖项交互.它不测试zip文件是否正确解压缩等.

我觉得我不再测试功能了.感觉就像我只是在测试课堂互动.

我的问题是:对依赖于文件系统的东西进行单元测试的正确方法是什么?

编辑我正在使用.NET,但这个概念也可以应用Java或本机代码.

dependencies unit-testing dependency-injection

131
推荐指数
6
解决办法
4万
查看次数