小编Jef*_*oom的帖子

对数组clone()的方法引用会导致NoClassDefFoundError:Array

当我运行此代码时

List<int[]> list = Arrays.asList(new int[]{1, 2, 3}, new int[]{4, 5});
int[][] arr = list.stream().map(j -> j.clone()).toArray(int[][]::new);
System.out.println(Arrays.deepToString(arr));
Run Code Online (Sandbox Code Playgroud)

它按预期工作,我得到输出

[[1, 2, 3], [4, 5]]
Run Code Online (Sandbox Code Playgroud)

但是,如果我用方法引用替换lambda clone()

int[][] arr = list.stream().map(int[]::clone).toArray(int[][]::new);
Run Code Online (Sandbox Code Playgroud)

我得到一个运行时异常:

Exception in thread "main" java.lang.NoClassDefFoundError: Array
    at Main.lambda$MR$main$clone$8ed4b78b$1(Main.java:14)
    at Main$$Lambda$1/1160460865.apply(Unknown Source)
    at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
    at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
    at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502)
    at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:576)
    at java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:255)
    at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:438)
    at Main.main(Main.java:14)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: java.lang.ClassNotFoundException: Array
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method) …
Run Code Online (Sandbox Code Playgroud)

java java-8 method-reference

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

如何对同一个git修订版应用两个补丁?

这是一个想象中的问题,但我遇到了补丁的真正问题.假设我有一个包含以下git历史的项目:

A - B - C
Run Code Online (Sandbox Code Playgroud)

现在,如果我收到两个补丁,C1并且C2应该应用C它们,我应该如何处理它们?如果我先应用补丁C1,那么我将无法应用补丁,C2因为存储库已成为:

A - B - C - C1
Run Code Online (Sandbox Code Playgroud)

是否可以同时应用它们,或者我是否必须回复发送C2的人告诉他/她更新补丁?

现在假设我离线并工作和提交,以便存储库变为:

A - B - C - D - E
Run Code Online (Sandbox Code Playgroud)

然后我查看我的电子邮件并收到补丁C.再次,是否可以简单地应用该补丁,或者我是否需要更新补丁?

git patch

12
推荐指数
2
解决办法
321
查看次数

C++在函数声明中出错两个或多个数据类型

在一段代码中,我传递了两个相同类型的参数 b2Vec2 *

void bool isVelocityAllowToCar(b2Vec2 *newVelocity, b2Vec2 *preVelocity);
Run Code Online (Sandbox Code Playgroud)

当我构建我的项目时,它向我显示以下错误.

two or more data types in declaration of 'isVelocityAllowToCar'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

c++

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

番石榴的RateLimiter每分钟而不是秒?

我试图限制用户可以使用我的REST API创建的帐户数量.

我本来希望使用Guava RateLimiter只允许IP在10分钟内创建5个帐户,但该RateLimiter.create方法只需要double指定"每秒"许可数.

有没有办法配置RateLimiter以大于一秒的粒度释放许可?

java rate-limiting guava

11
推荐指数
2
解决办法
9035
查看次数

为什么std :: condition_variable作为类成员导致std :: thread的编译错误?

我尝试包含std::condition_variable作为类成员,并在将此类的对象传递给a时遇到大量编译错误std::thread.我从我的实际程序中删除了所有其他代码,最后得到了以下最小代码.删除std::condition_variable原因没有问题.我尝试在构造函数中"初始化"变量,以及制作它inline,但都没有帮助.

#include <thread>
#include <condition_variable>

struct ThreadHandler {
    void operator()() { }

    std::condition_variable cond; 
};

int main() {
    ThreadHandler th1;
    std::thread t1(th1);
    t1.join(); 
}
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

以下是我得到的编译错误:

In file included from main.cpp:1:
/usr/local/include/c++/8.1.0/thread: In instantiation of ‘static std::thread::_Invoker<std::tuple<typename std::decay<_Tp>::type, typename std::decay<_Args>::type ...> > std::thread::__make_invoker(_Callable&&, _Args&& ...) [with _Callable = ThreadHandler&; _Args = {}; typename std::decay<_Tp>::type = ThreadHandler]’:
/usr/local/include/c++/8.1.0/thread:127:22:   required from ‘std::thread::thread(_Callable&&, _Args&& ...) [with _Callable = ThreadHandler&; _Args = {}]’
main.cpp:14:23:   required from …
Run Code Online (Sandbox Code Playgroud)

c++ condition-variable c++11 stdthread c++17

11
推荐指数
2
解决办法
818
查看次数

合并两个流

我试图实现一个方法来合并两个Streams中的值基于a Comparator的值.

我有办法做到这一点,我迭代流并将值插入到一个Stream.Builder,但我还没有弄清楚如何制作一个懒惰评估版本(许多流操作的方式),所以它可以处理无限流.

我想要它做的就是对输入数据执行单个合并传递,而不是对流进行排序(实际上,流很可能是无序的;需要保留这种混乱).

static Stream<E> merge(Stream<E> first, Stream<E> second, Comparator<E> c)
Run Code Online (Sandbox Code Playgroud)

我如何懒惰地合并这样的两个流?

如果我用两个Queues作为输入,一些Consumer作为输出,这将是相当简单的:

void merge(Queue<E> first, Queue<E> second, Consumer<E> out, Comparator<E> c){
    while(!first.isEmpty() && !second.isEmpty()
        if(c.compare(first.peek(), second.peek()) <= 0)
            out.accept(first.remove());
        else
            out.accept(second.remove());
    for(E e:first)
        out.accept(e);
    for(E e:second)
        out.accept(e);
}
Run Code Online (Sandbox Code Playgroud)

但我需要使用惰性评估和流来完成这项工作.

为了解决这些评论,这里有一些示例输入和结果:

例1:

merge(
    Stream.of(1, 2, 3, 1, 2, 3),
    Stream.of(2, 2, 3, 2, 2, 2),
    Comparator.naturalOrder()
);
Run Code Online (Sandbox Code Playgroud)

将返回一个将产生此序列的流:

1, 2, 2, 2, 3, 3, 1, 2, …
Run Code Online (Sandbox Code Playgroud)

java merge java-8 java-stream

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

使用C++和Rcpp中的times参数重现R rep

我正在学习使用Rcpp.我想使用C++来复制repR中的函数.Rcpp包含几个与repR 对应的糖函数.(参见第3页底部:http://cran.r-project.org/web/packages/Rcpp /vignettes/Rcpp-quickref.pdf.据我理解文档,糖函数rep,rep_eachrep_len采用两个参数 - 向量和整数.但是,我想要做的是rep在我使用时复制R中的功能的times.论点在这种情况下,可以作为R提供两个矢量一个简单的例子.:

x <- c(10, 5, 12)
y <- c(2, 6, 3)

rep(x, times = y)
[1] 10 10  5  5  5  5  5  5 12 12 12
Run Code Online (Sandbox Code Playgroud)

因此rep,times参数复制每个元素的x次数与对应的y值一样多.据我了解,我看不出有任何方法可以使用Rcpp糖功能.

我创建了以下适用的C++函数:

// [[Rcpp::export]]
NumericVector reptest(NumericVector x, NumericVector y) {
    int n = y.size();
    NumericVector myvector(sum(y));
    int ind = 0;
    for (int i …
Run Code Online (Sandbox Code Playgroud)

r rcpp

10
推荐指数
3
解决办法
2022
查看次数

Processing.js的IDE

我刚刚开始使用processing.js,我使用的IDE(Aptana,NetBeans)都无法理解JavaScript语法处理的用法.在编码processing.js时使用什么好的编辑器?至少我想要代码折叠和着色.

ide processing.js

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

PHP将时间()上升(未来)到下一个5分钟的倍数

如何将结果time()(朝向未来)舍入到下一个5分钟的倍数?

php time rounding

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

正则表达式匹配一个类的导入

我一直在努力编写一个正则表达式来匹配类的导入.让班级成为

import static org.junit.Assert.*;
import org.
       package.
       Test;
import mypackage.mystuff;
Run Code Online (Sandbox Code Playgroud)

输出应该是[org.junit.Assert.*,org.package.Test,mypackage.mystuff].因为我不熟悉它们,所以我一直在努力使用换行符和正则表达式.这是我目前的尝试:

((?<=\bimport\s)\s*([^\s]+ )*([a-z.A-Z0-9]+.(?=;))) 
Run Code Online (Sandbox Code Playgroud)

java regex

8
推荐指数
2
解决办法
1521
查看次数