我在尝试Java 8的Lambda表达式时遇到了问题.通常它工作正常,但现在我有方法可以抛出IOException.最好看一下以下代码:
class Bank{
....
public Set<String> getActiveAccountNumbers() throws IOException {
Stream<Account> s = accounts.values().stream();
s = s.filter(a -> a.isActive());
Stream<String> ss = s.map(a -> a.getNumber());
return ss.collect(Collectors.toSet());
}
....
}
interface Account{
....
boolean isActive() throws IOException;
String getNumber() throws IOException;
....
}
Run Code Online (Sandbox Code Playgroud)
问题是,它不能编译,因为我必须捕获isActive-和getNumber-Methods的可能例外.但即使我明确使用如下所示的try-catch-Block,它仍然无法编译,因为我没有捕获异常.所以要么JDK中存在错误,要么我不知道如何捕获这些异常.
class Bank{
....
//Doesn't compile either
public Set<String> getActiveAccountNumbers() throws IOException {
try{
Stream<Account> s = accounts.values().stream();
s = s.filter(a -> a.isActive());
Stream<String> ss = s.map(a -> a.getNumber());
return ss.collect(Collectors.toSet());
}catch(IOException ex){
} …Run Code Online (Sandbox Code Playgroud) 这是关于用Java编写的风暴拓扑中的单元测试螺栓和喷口的一般性问题.
单元测试(JUnit?)螺栓和喷嘴的推荐做法和指南是什么?
例如,我可以为a编写一个JUnit测试Bolt,但是如果没有完全理解框架(如a的生命周期Bolt)和序列化含义,很容易犯错误的基于构造函数的非可序列化成员变量的创建.在JUnit中,此测试将通过,但在拓扑中,它将无法工作.我完全可以想象有许多测试点需要考虑(例如序列化和生命周期的这个例子).
因此,是否建议您使用基于JUnit的单元测试,运行小型模拟拓扑(LocalMode?)并测试该拓扑下的Bolt(或Spout)隐含合约?或者,使用JUnit是否可以,但其含义是我们必须仔细模拟Bolt的生命周期(创建它,调用prepare(),模拟Config等)?在这种情况下,要测试的被测类(Bolt/Spout)的一般测试点是什么?
在创建适当的单元测试方面,其他开发人员做了什么?
我注意到有一个拓扑测试API(参见:https://github.com/xumingming/storm-lib/blob/master/src/jvm/storm/TestingApiDemo.java).是否更好地使用某些API,并为每个人站起来"测试拓扑" Bolt&Spout(并验证Bolt必须提供的隐式合同,例如 - 它的声明输出)?
谢谢
这可能听起来很愚蠢,但为什么我需要在我的@Entitys中定义一个空构造函数?
我看到的每个教程都说:每个实体都需要一个空的构造函数.
但Java总是给你一个默认的不可见的空构造函数(如果你不重新定义一个).
谢谢.
我认为存在语义问题.我对"需要"所理解的是写作.
含义:始终在实体中编写一个空构造函数.
例:
@Entity
public class MyEntity implements Serializable {
@Id
private String str;
public MyEntity(){}
//here getter and setter
}
Run Code Online (Sandbox Code Playgroud)
但是当你不重新定义它时,Java总是给你这个空的构造函数(用参数写另一个).
在这种情况下,编写这个空构造函数似乎没用.
我正在尝试从Jersey 1.x(1.2)迁移到2.x(2.6),我无法识别确切的maven依赖项,jersey文档不够全面,它没有提到需要什么maven依赖项新版本.
有谁有泽西2.x(2.6)所需的全面的maven依赖列表?
Jersey doc https://jersey.java.net/documentation/latest/migration.html#mig-1.x
从过去的几个月开始,我一直在osgi中深刻印象,并且必须对它印象深刻.最近几天我看到一篇博客说impala比osgi更好.我听说过黑斑羚,但从来没有机会深入研究它.
我只是想知道哪一个更好的Impala或OSGi?有人在研究黑斑羚吗?
对于开发大型企业应用程序,应该使用osgi或impala,为什么?
我一直在为我公司的软件调查OSGi,但最近建议我们去看看Impala.根据其网页,Impala是"基于Spring框架的基于Java的Web应用程序的动态模块框架".
一目了然,看看这篇关于差异的博客文章,我可以看到的关键差异是Impala比OSGi简单,不管理第三方组件的版本化,并且使用/知道的广泛使用(我看不到)关于Stack Overflow的一个问题.
我想知道那些对Impala和OSGi有直接经验的人(即那些比阅读博客文章和在线文档更深入地调查过的人)对于两者之间的实际差异有更深入的了解,和/或关于什么类型的每个项目可能或多或少都适合.
编辑:将Springsource Slices包含在比较中可能也很有趣,尽管它还是早期的原型.一目了然,它似乎只适用于DM Server.
我之前使用扫描存储在Accumulo中的数据,并且已经得到了整个结果集(无论Range我指定的是什么).问题是,我想在客户端接收之前从Accumulo过滤服务器端的那些.我希望有人有一个简单的代码示例,说明如何完成此操作.
根据我的理解,Filter提供了一些(全部?)这个功能,但是如何在实践中使用API?我在shell客户端上看到了一个使用Filter的例子,来自这里的Accumulo文档:http://accumulo.apache.org/user_manual_1.3-incubating/examples/filter.html
我在网上找不到任何基于正则表达式对任何数据进行扫描的简单方法的在线代码示例,尽管我认为这应该是相对容易的事情.
我希望 Android 开发领域的某个人以前遇到过这个问题/用例,并且有一个相对直接的实现方法。
我有一个客户端 Android 应用程序,需要呈现最终用户随后填写的字段列表。每个字段都是某种已知类型,例如“文本”或“广播”、“多选”等。当用户点击表单时,将对后端进行 API 调用,该后端返回该表单的架构(即:每个字段的 UUID、标题、描述、提示文本等)以及该表单的数据,其中某些字段可能已经在之前填写过。我将通过 API 调用获取哪些数据的示例:
{
"submittedBy": 8,
"updatedBy": 8,
"createdBy": 8,
"submittedDateMillis": 1489680600000,
"updatedDateMillis": 1489680600000,
"createdDateMillis": 1489680600000,
"name": "My Form",
"formTemplateId": 3,
"id": 0,
"schema": {
"6051c1e3-b4bf-4e6a-afe3-de2497dbff11": {
"units": "ft.",
"hintText": "Length of measurement",
"required": false,
"description": "Take the length of the measured item to 4 decimal places.",
"title": "Measurement",
"type": "number"
},
"fdf6ff0b-e60d-4591-a3e7-5467cd7bc67e": {
"enum": [
"Foo",
"Bar",
"Baz",
"Bat"
],
"required": true,
"hintText": "",
"description": "This is …Run Code Online (Sandbox Code Playgroud) java ×2
osgi ×2
accumulo ×1
android ×1
apache-storm ×1
entity ×1
java-8 ×1
jersey ×1
jersey-2.0 ×1
jpa ×1
junit ×1
lambda ×1
performance ×1
regex ×1
spring ×1
unit-testing ×1