由于JDK错误,我设法编写了一些在使用JDK 1.8.0_131进行编译时导致错误的代码.我只用几行代码就可以重现这个问题 - 但是我找不到项目中使用错误的模式的位置.
我的目标是弄清楚我的项目中的哪些代码导致了这个错误,并应用了一种解决方法.
JDK-8074381错误报告中概述了该问题,并且只能在几行代码中复制.
public class Test {
public interface Foo<L> extends Function<Number, String> {
String apply(Number p);
}
private static final Foo CRASH = p -> "This will crash javac 1.8.0_131";
}
Run Code Online (Sandbox Code Playgroud)
当使用非参数化的lambda而不是非参数化的内部类(根据我认为的语言规范应该都是有效的)时,问题就会出现.所以
private static final Foo INNER = new Foo<Object>() {
@Override
public String apply(final Number p) {
return "This will not crash javac 1.8.0_131";
}
};
Run Code Online (Sandbox Code Playgroud)
工作良好.违规堆栈跟踪开始(为了您的理智而被截断):
An exception has occurred in the compiler (1.8.0_131). Please file a bug against the Java compiler …Run Code Online (Sandbox Code Playgroud) 我的网络上有一个Roku设备,我希望能够以编程方式发现它.该负责人Roku公司文件称:
有一个标准的SSDP多播地址和端口(239.255.255.250:1900),用于本地网络通信.Roku响应此IP地址和端口上的M-SEARCH查询.
为了查询roku ip地址,您的程序可以使用http协议将以下请求发送到239.255.255.250端口1900:
他们提供了一个使用netcat的例子,他们说wireshark可以用来查找结果.他们还说:
外部控制协议使Roku能够通过网络进行控制.可以通过SSDP(简单服务发现协议)发现外部控制服务.该服务是一个简单的RESTful API ,几乎可以在任何编程环境中由程序访问.
我有一个java程序控制我的Roku给定其IP地址,我想实现一个功能,使用此SSDP在网络上发现它.
如何使用java发送M-SEARCH查询?我绝对不知道如何做到这一点.这是一个获取/发布请求?如果有人能指出我正确的方向,我将非常感激!
我想存储交易以及最佳要价/出价数据,后者在InfluxDB中的更新速度比前者快得多。
我想,如果可能的话,使用一种允许我查询的模式:“对于市场X上的每笔交易,找到其时间标记<=该交易的时间标记的市场Y上的最佳要价/出价”。
(我将使用任何版本的Influx。)
例如,交易可能看起来像这样:
Time Price Volume Direction Market
00:01.000 100 5 1 foo-bar
00:03.000 99 50 0 bar-baz
00:03.050 99 25 0 foo-bar
00:04.000 101 15 1 bar-baz
Run Code Online (Sandbox Code Playgroud)
刻度数据可能更像这样:
Time Ask Bid Market
00:00.763 100 99 bar-baz
00:01.010 101 99 foo-bar
00:01.012 101 98 bar-baz
00:01.012 101 99 foo-bar
00:01:238 100 99 bar-baz
...
00:03:021 101 98 bar-baz
Run Code Online (Sandbox Code Playgroud)
我希望能够以某种方式加入某个市场(例如foo-bar)的每笔交易,而只有其他市场(例如bar-baz)上的最新卖/卖点数据点,才能得到如下结果:
Time Trade Price Ask Bid
00:01.000 100 100 99
00:03.050 99 101 98
Run Code Online (Sandbox Code Playgroud)
这样我就可以计算出市场foo-bar上的交易价格与最新报价的市场 …
我在JavaFX(java版本1.8.0_91)中遇到了一些奇怪的东西.我的理解是,如果想要从单独的线程更新UI,则必须使用包Platform.runLater(taskThatUpdates)中的工具或其中一个工具javafx.concurrent.
但是,如果我有一个TableView我打电话.setItems(someObservableList),我可以someObservableList从一个单独的线程更新,看到我的相应更改TableView没有预期的Exception in thread "X" java.lang.IllegalStateException: Not on FX application thread; currentThread = X错误.
如果我替换TableView为ListView,则会发生预期的错误.
情况#1的示例代码:TableView从不同的线程更新a ,没有调用Platform.runLater()- 并且没有错误.
public class Test extends Application {
public static void main(String[] args) {
Application.launch(args);
}
@Override
public void start(Stage stage) throws Exception {
// Create a table of integers with one column to display
TableView<Integer> data = new TableView<>();
TableColumn<Integer, Integer> …Run Code Online (Sandbox Code Playgroud) 假设我有几个向量
(def coll-a [{:name "foo"} ...])
(def coll-b [{:name "foo"} ...])
(def coll-c [{:name "foo"} ...])
Run Code Online (Sandbox Code Playgroud)
并且我想看看第一个元素的名称是否相等.
我可以
(= (:name (first coll-a)) (:name (first coll-b)) (:name (first coll-c)))
Run Code Online (Sandbox Code Playgroud)
但随着更多功能的组合,这很快就会变得疲惫和过于冗长.(也许我想比较第一个元素名称的最后一个字母?)
直接表达计算的本质似乎是直观的
(apply = (map (comp :name first) [coll-a coll-b coll-c]))
Run Code Online (Sandbox Code Playgroud)
但它让我想知道这种事情是否有更高级别的抽象.
我经常发现自己比较/以其他方式操作通过应用于多个元素的单个合成来计算的东西,但是地图语法看起来有点偏离我.
如果我要回家酿造某种运算符,我会想要语法
(-op- (= :name first) coll-a coll-b coll-c)
Run Code Online (Sandbox Code Playgroud)
因为大多数计算都表达在(= :name first).
我想要一个抽象应用于运算符和应用于每个参数的函数.也就是说,它应该与比较一样容易.
(def coll-a [{:name "foo" :age 43}])
(def coll-b [{:name "foo" :age 35}])
(def coll-c [{:name "foo" :age 28}])
(-op- (+ :age first) coll-a coll-b coll-c) …Run Code Online (Sandbox Code Playgroud) functional-programming clojure operators higher-order-functions
所以我在Ubuntu 11.4和Python 2.7上运行看起来像这样的代码:
p_scan_command = "sudo nmap -sC -sV -PN -O 192.168.0.1/24"
time.sleep(1.5)
os.system(p_scan_command)
f = open('nmapscan1.log', 'r')
print f.read()
f.close()
Run Code Online (Sandbox Code Playgroud)
发生的事情是我最终没有结果,并且扫描没有运行,可能是因为它正在运行'sudo'.我想知道
java ×3
clojure ×1
concurrency ×1
database ×1
generics ×1
influxdb ×1
influxdb-2 ×1
influxql ×1
java-8 ×1
javafx ×1
javafx-8 ×1
lambda ×1
networking ×1
operators ×1
os.system ×1
python ×1
python-2.7 ×1
ssdp ×1
ubuntu ×1
ubuntu-11.04 ×1