我们使用构建器模式为服务创建一些输入,它看起来像这样(简化):
final SomeInput input = SomeInput.builder()
.withSomeId(....)
.withSomeState(....)
...
.build();
Run Code Online (Sandbox Code Playgroud)
我们想在SomeInput中设置一些属性,但仅限于它存在.所以在创建对象后,我做了这样的事情:
Optional<String> secondaryId = infoProvider.getSecondaryId();
if (secondaryId.isPresent()) {
input.setSecondaryId(secondaryId.get());
}
Run Code Online (Sandbox Code Playgroud)
我在想:
a)有更好/更清洁的方法吗?b)如果我确实需要这样做,我可以避免使用"if"语句并使用Optional的某些功能吗?
(注意:我无法更改构建器本身,我不能认为secondaryId是String,但我们从infoProvider检索的是可选的)
我正在学习 React 并试图更好地了解生命周期和不同阶段。
我刚刚读到的一件事是“React 首先渲染然后挂载元素。在这种情况下渲染意味着调用类的 render(),而不是绘制 DOM”
我想我只是不明白这意味着什么。有人可以用简单的方式或例子来解释它吗?
提前致谢!
我正在使用freemarker并试图以这种格式显示数字:$3,343,434.00例如.这很容易通过使用${total?string.currency}(假设"总数"是一些数字)来处理.
但是,当我有负数时,它会像这样显示:($343.34)而不是:-$343.34.我需要负号而不是括号.有没有办法我可以自定义格式,以便它做的所有事情,string.currency但取代负值行为?我对freemarker相对较新,所以我们非常感谢您的详细回复!
在Java 8中,
我目前有一个看起来像这样的lambda:
.createSomething((acceptableStates, someProxy) -> (userId) ->
acceptableStates.contains(someProxy.getSomeAttributeId(userId)))
Run Code Online (Sandbox Code Playgroud)
但是,我们更改了someProxy.getSomeAttributeId以返回Optional<String>而不是字符串.
什么是最干净/最被接受的基本检查方式是否acceptableStates包含someProxy.getSomeAttributeId(userId)if返回的属性是否为空的值?
(注意:acceptableStates仍然是字符串列表,而不是Optional<String>)
现在,我只知道一种方法: - 获取上一个已知位置 - 让位置管理器请求位置更新
但是,我真的只需要在调用应用程序时将CURRENT坐标设置为ONCE,但它并不是我想要的.获取当前坐标的最简单方法是什么?有什么我可以打电话或一些代码我可以用来获得现在的位置吗?
提前致谢!我对android开发还有点新意.
我是scala的新手,我正在尝试以一种干净的方式做这样的事情。
我有一个采用几个可选参数的方法。我想创建一个地图,并且仅在可选参数具有值的情况下才向地图添加项目。这是一个虚拟的例子:
def makeSomething(value1: Option[String], value2: Option[String], value3: Option[String]): SomeClass = {
val someMap: Map[String, String] =
value1.map(i => Map("KEY_1_NAME" -> i.toString)).getOrElse(Map())
}
Run Code Online (Sandbox Code Playgroud)
在上面的这种情况下,我们正在做我想做的事情,但是只有当我们只关心value1时,我才希望对所有可选值都做到这一点,并将它们放入地图中。我知道我可以做一些蛮力的事情:
def makeSomething(value1: Option[String], value2: Option[String], value3: Option[String]): SomeClass = {
// create Map
// if value1 has a value, add to map
// if value2 has a value, add to map
// ... etc
}
Run Code Online (Sandbox Code Playgroud)
但是我想知道scala是否有任何功能可以帮助我解决此问题。
提前致谢!
我是scala的新手,我正试图弄清楚这个代码在我想要更新的代码库中做了些什么.
删除一些细节,我不明白的块是这样的:
我已经看到一些scala代码可以执行以下操作:
val someA = something.createSomeA(....)
Future {
someA.doSomething1(....)
someA.doSomething2(.....)
}
// then log some things unrelated to the future
someA
// end of func
Run Code Online (Sandbox Code Playgroud)
我真的不明白在这种情况下未来会做什么,因为它没有分配给任何东西.有人能解释一下未来在做什么吗?我知道细节取决于doSomethings实际上做了什么,但有人可以解释一下这将是什么?我只熟悉Futures在分配给变量时的使用情况,然后稍后以某种方式检查完成情况.
帮助将不胜感激!! (抱歉格式不佳,我是通过手机拍的)
我的团队正在将多个不同的 DynamoDB 表迁移到一组两个 DynamoDB 表中。本质上,我们正在更改模型并将大量数据合并到两个表中(现在分布在 6 个表中)。
我们正在考虑使用 DynamoDB 流,并让它们触发 Lambda,该 Lambda 处理触发某些写入新表的 API 的逻辑。但是,我也试图弄清楚如何处理旧数据,因为我们还必须将表中已有的所有内容迁移到新表中。
我猜测一个选择是运行一些程序来扫描 DynamoDB 表中的每个项目(有些项目大约有 1 亿个),并且对于每个项目,调用 Lambda 调用的相同 API 以写入新表。但是,我不确定当我们在迁移过程中也经常将新记录写入旧表时,对旧表的扫描如何处理。
有人对进行此类迁移并保持同步有一些建议吗?
谢谢!
因此,我正在与一些队友一起进行项目,并且已经基于他们的更改,但是有没有办法删除他们的提交(只是在本地-不打算以这种方式推送)并随意重新添加?
**编辑:澄清,我不想将提交与我的提交结合使用,我只想使其像从未执行过的提交一样(从该提交中删除任何更改,等等)
Commit A: Commit that both of us got out
Commit B: His commit <- want to locally remove just this commit
Commit C: My commit
Run Code Online (Sandbox Code Playgroud)
我曾考虑过要创建一个分支,而只是将提交保留在分支上,而不是将他的更改拉到那个分支上,但是我想知道是否有一种更干净的方式不涉及单独的分支?
提前致谢!
我需要根据另一个可选值获取可选值.这是我的意思的一个过于简化的例子:
Optional<SomeA> someA = callSomeFunctionThatReturnsOptionalSomeA(....);
Optional<SomeB> someB = // if someA is present, call some method to get value of someB, if someA is not present, don't bother and just return an empty optional.
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用else/if for someA.isPresent()但是我想尝试使用更短的方法(如果可能的话,使用可选的?上的map).有小费吗?
我有一个包含大量数据的文件,例如:
something_id: someId
something_version: someVersion
something_log: someLog
Run Code Online (Sandbox Code Playgroud)
我想在包含something_log哪个行之前添加一行文本something_test: example1
我该怎么做?任何帮助,将不胜感激!
我是Scala的新手,我知道必须有一个很好的方法来做到这一点,但我无法想出一些美观可读的东西.
我有一组id(字符串),对于每个id,我运行一些返回布尔值的函数.
结果是Set [Boolean],但我想创建一个包含两个数字的元组,一个是true,一个是false.
什么是干净/可读的方式来做到这一点?
我是 Scala 的新手,我试图弄清楚如何添加到我们现有的路由中,以便如果遇到某个路径,我们会通过检查某些值是否存在以及它们是否存在来评估标头等于一些公认的值。如果成功,我们从头中取出一些 String 并将其传递,否则我们不应该继续路由并返回一些失败。
/abc -> don't check headers
/abc/def -> check headers, return
pathPrefix("abc") {
path("def") { // want to ADD something here to check headers and send it into someMethod
get {
complete(HttpEntity(something.someMethod(someValue)))
}
} ~ path("gdi") {
get { ... etc}
}
}
Run Code Online (Sandbox Code Playgroud)
任何想法或虚拟示例都会非常有帮助。我在这里看到一些指令来从请求中获取内容和标题(https://doc.akka.io/docs/akka-http/10.0.11/scala/http/routing-dsl/directives/header-directives/ headerValue.html),但我不明白如何以这种方式链接指令。
如果我误解了什么,请帮助澄清!谢谢