小编Rol*_*and的帖子

Tortoise SVN Switch分支命令错误 - "没有共同的祖先"

当我尝试"切换"将目录更改为其他分支时,我收到一条奇怪的错误消息.

这是如何设置存储库从主机的网站查看它.我曾经有一个名为bugfix-lobby-quirks的分支,但是在我将它合并到trunk后它被删除了.这和游戏中的新功能 - 对手 - 卡都是从后备箱分支出来的.

在此输入图像描述

现在我想将已检出的工作副本"切换"从已删除的分支到此新分支.我已经在我的计算机上检查了bugfix-lobby-quirks分支,因为我正在处理它.我想要做的是这个文件夹在新的分支让我选择,因为它们是不是真的,这是很好切换一切的一切不同的.这就是svn switch的意思,对吗?

在此输入图像描述

然后我点击开关,弹出一个弹出窗口.它会自动识别分支并在列表中显示,因此我选择它.

在此输入图像描述

不幸的是,这样做每次都会导致出现此错误消息.

在此输入图像描述

这不是一个快乐的日子.这是悲伤的一天.

好.那么我做错了什么?

svn tortoisesvn svn-switch

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

在Kotlin中将数组转换为List

我尝试这样做(与java相同)

val disabledNos = intArrayOf(1, 2, 3, 4)
var integers = Arrays.asList(disabledNos)
Run Code Online (Sandbox Code Playgroud)

但这并没有给我一个清单.有任何想法吗?

kotlin

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

Java 8 Streams:计算进入终端操作的所有元素

我想知道是否有更好的(或只是其他)方法来获取进入流的终端操作而不是以下的所有项的计数:

Stream<T> stream = ... // given as parameter
AtomicLong count = new AtomicLong();
stream.filter(...).map(...)
      .peek(t -> count.incrementAndGet())
Run Code Online (Sandbox Code Playgroud)

其中count.get()给出了该阶段处理项目的实际数量.

我故意跳过了终端的操作,可能之间切换.forEach,.reduce.collect.我已经知道.count,但它似乎只有在我.forEach用a 交换a .map并使用.countas终端操作时才能正常工作.但在我看来好像.map被滥用了.

我不喜欢上面的解决方案:如果在它之后添加了一个过滤器,它只计算该特定阶段的元素,而不是那些进入终端操作的元素.

我想到的另一种方法是collect将过滤后的值映射到列表中并对其进行操作,然后调用list.size()以获取计数.然而,如果流的集合会导致错误,这将不起作用,而使用上述解决方案,我可以计算到目前为止所有已处理的项目,如果适当的话try/catch.然而,这并不是一项艰难的要求.

java java-8 java-stream

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

build.gradle.kts 和多模块项目:如何添加其他项目以便传递依赖项也可用

具有以下多模块设置:

\n\n
multi\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 projA\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 build.gradle.kts\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 projB\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 build.gradle.kts\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle.kts\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 settings.gradle.kts\n
Run Code Online (Sandbox Code Playgroud)\n\n

内容如下(略):

\n\n\n\n

为什么我无法importantlibrary:1.0从访问该内容projB

\n\n

什么有效:如果我有一个projA使用该库的类,即使从其中的一个类调用该类,它也可以完美地工作projB(因此间接访问有效)。importantlibrary:1.0从内部直接访问任何类都projB不起作用(未解析的参考)。

\n\n

我在这里缺少什么?或者需要进行哪些设置才能使其正常工作?

\n\n

摇篮版本:5.6.1

\n

gradle gradle-kotlin-dsl

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

在Kotlin中实现(/ inherit/~extended)注释

在Java中,我有可能"实现"注释.

示例Java注释:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface JavaClassAnno {
  String[] value();
}
Run Code Online (Sandbox Code Playgroud)

示例Java"实现":

class MyAnnotationLiteral 
                  extends AnnotationLiteral<JavaClassAnno> 
                  implements JavaClassAnno { // <--- works in Java
  private String value;

  public MyAnnotationLiteral(String value) {
    this.value = value;
  }
  @Override
  public String[] value() {
    return new String[] { value };
  }
}
Run Code Online (Sandbox Code Playgroud)

试图将其移植到Kotlin不起作用,因为它说注释是最终的,因此不能继承,即以下将不起作用:

class MyAnnotationLiteral(private val internalValue: String) 
                 : AnnotationLiteral<JavaClassAnno>(), 
                   JavaClassAnno { // <--- doesn't work in Kotlin (annotation can not be inherited)
  override fun value(): Array<String> {
    return arrayOf(internalValue)
  }
}
Run Code Online (Sandbox Code Playgroud)

你如何"实施/扩展"Kotlin方式的注释?无法找到任何理由为什么Kotlin在这方面与Java有所不同.任何提示如何解决这个问题的提示或任何说明原因的方法都是受欢迎的.

以下问题包含此星座的用例: …

java kotlin kotlin-interop

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

JUnit启动时间很慢

我正在开发一个相当小的项目(就依赖性而言),每当我运行单元测试时,JVM加载需要8秒,然后以0.2秒运行实际测试.

我的环境:

  • Java 8
  • Spring Tool Suite 3.8.1.RELEASE
  • JUnit 4
  • Windows 8

我担心在我的环境中肯定会有这样的事情导致这种情况持续这么长时间,我希望有人之前已经看过这个问题并找到问题的根源并且可能是一个解决方案?例如,如果我的PATH环境变量真的很长,那会有关系吗?当我进行JUnit测试时到底发生了什么?

我正在尝试运行的实际测试是:

public class TemplateLocationCalculatorTest {

    private TemplateLocationCalculator target = new TemplateLocationCalculator();

    @Test
    public void whenGivenRootReturnIndex(){
        Assert.assertEquals("index", target.calculate("/"));
    }
}
Run Code Online (Sandbox Code Playgroud)

目标类是:

public class TemplateLocationCalculator {

    public String calculate(String string) {
        return "index";
    }

}
Run Code Online (Sandbox Code Playgroud)

当我说这不应该花费很长时间来加载时,我希望你会同意我的看法.

java junit jvm spring-tool-suite

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

Java 8 stream.collect(... groupingBy(... mapping(... reduction)))减少BinaryOperator的使用

我使用了解决方案groupingBy,mapping并使用reducing 以下问题:在Java 8中优雅地创建带有对象字段的映射作为对象流的键/值.总结的目标是获得一张年龄为关键的地图和一个人的爱好Set.

我提出的解决方案之一(不好,但这不是重点)有一个奇怪的行为.

使用以下列表作为输入:

List<Person> personList = Arrays.asList(
     new Person(/* name */ "A", /* age */ 23, /* hobbies */ asList("a")),
     new Person("BC", 24, asList("b", "c")),
     new Person("D", 23, asList("d")),
     new Person("E", 23, asList("e"))
);
Run Code Online (Sandbox Code Playgroud)

以及以下解决方案:

Collector<List<String>, ?, Set<String>> listToSetReducer = Collectors.reducing(new HashSet<>(), HashSet::new, (strings, strings2) -> {
  strings.addAll(strings2);
  return strings;
});
Map<Integer, Set<String>> map = personList.stream()
                                          .collect(Collectors.groupingBy(o -> o.age, 
                                                                         Collectors.mapping(o -> o.hobbies, listToSetReducer)));
System.out.println("map = " + map);
Run Code Online (Sandbox Code Playgroud)

我有: …

java java-8 java-stream collectors

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

当作为参数传递时,属性引用(:: test)是否等效于访问属性({test})的函数,例如`() - > String`?

我开始想知道访问属性::test是否等同于调用{ test }或者它是否是使用反射的间接调用.

在查看以下内容时,我想到了一个问题:如何将属性getter作为函数类型传递给另一个函数

同时兼具::test{ test }工作时,IDE(的Intellij)设置::test到一个KProperty型而后者类型是() -> String当分配给一个变量.所以这里有区别.但有效的区别是什么?这些真正的方法引用是在Java中还是反向访问属性?一种变体可能会对另一种变体产生任何性能影响吗?

代码段:

class Test(val test : String) {
  fun testFun(func: ()->String) : String = func()
  fun callTest() {
    testFun { test } // or (::test) // is it using reflection? are these real references?
  }
}
Run Code Online (Sandbox Code Playgroud)

kotlin

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

用于字符串操作的Java 8 Streams

我想在一个字符串上执行多个任务.我需要使用分隔符("/")获取一个字符串并提取不同的子字符串,然后反转子字符串列表,最后使用另一个分隔符(".")/tmp/test/hello/world/将它们连接起来,这样就会变成:world.hello.test.tmp

使用Java 7代码如下:

String str ="/tmp/test/";
List<String> elephantList = new ArrayList<String>(Arrays.asList(str.split("/")));

StringBuilder sb = new StringBuilder();
for (int i=elephantList.size()-1; i>-1; i--) {
    String a = elephantList.get(i);
    if (a.equals(""))
    {
        elephantList.remove(i);
    }
    else
    {
        sb.append(a);
        sb.append('.');
    }
}
sb.setLength(sb.length() - 1);
System.out.println("result" + elephantList + "   " + sb.toString());
Run Code Online (Sandbox Code Playgroud)

我想知道如何使用Java 8流和它对字符串的连接功能做同样的事情

java-8 java-stream

7
推荐指数
2
解决办法
1958
查看次数

如何等待所有协程完成?

我正在启动一个协程,我希望它在我恢复执行主线程之前完成。

我的代码简化如下:

fun hello() {
    for (i in 0..100) {
        println("hello")
    }
}

fun main(args: Array<String>) {
    val job = GlobalScope.launch { hello() } //launch parallel 
    GlobalScope.launch { job.join() }  //try to wait for job to finish
    print("done")
}
Run Code Online (Sandbox Code Playgroud)

问题是,因为job.join()需要在一个协程内,执行的主线被推迟到“完成”,所以输出看起来像这样:

donehello
hello
hello
hello
Run Code Online (Sandbox Code Playgroud)

我想等待工作完成,就像sync.WaitGroup在 Go 中使用一样。所以我的输出肯定是这样的:

hello
hello
hello
hello
...
done
Run Code Online (Sandbox Code Playgroud)

我该如何实现?

kotlin kotlin-coroutines

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