小编Syn*_*sso的帖子

在Slick中Upsert

有没有办法可以在Slick中巧妙地进行upsert操作?以下工作,但太模糊/冗长,我需要明确说明应更新的字段:

val id = 1
val now = new Timestamp(System.currentTimeMillis)
val q = for { u <- Users if u.id === id } yield u.lastSeen 
q.update(now) match {
  case 0 => Users.insert((id, now, now))
  case _ => Unit
}
Run Code Online (Sandbox Code Playgroud)

scala slick

28
推荐指数
2
解决办法
8887
查看次数

在Android中将布局视图的背景颜色设置为渐变?

如何指定Android布局视图元素的背景"颜色"应该是渐变(以特定角度)?

我希望在XML中指定它,即不在运行时.最好作为一种风格,我可以申请任何我希望与style财产的布局?

android android-layout

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

如何在Java泛型中使用逆变?

在Java中,协方差允许API设计者指定实例可以被概括为某种类型或任何该类型的子类型.例如:

List<? extends Shape> shapes = new ArrayList<Circle>(); 
// where type Circle extends Shape
Run Code Online (Sandbox Code Playgroud)

反方差则是另一种方式.它允许我们指定实例可以概括为某种类型或超类型.

List<? super Shape> shapes = new ArrayList<Geometry>();
// where Shape extends Geometry
Run Code Online (Sandbox Code Playgroud)

Java泛型的逆变是如何有用的?你什么时候选择使用它?

java generics contravariance

25
推荐指数
3
解决办法
6137
查看次数

什么是番石榴相当于Scala的flatMap?

通过https://github.com/google/guava/wiki/FunctionalExplained查看我看到像transform这样的操作,它将转换列表但保持相同的基数.如何执行导致不同基数的转换?例如(伪代码)List(1,2,3).transform(i => List(i, i))- >List(1,1,2,2,3,3)

java functional-programming scala guava

25
推荐指数
2
解决办法
7769
查看次数

java可执行jar的SBT项目

将SBT项目的目标包设置为可执行jar文件的最佳方法是什么?

它需要捆绑scala-library.jar并为main-method设置清单.

scala executable-jar sbt

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

在ScalaCheck中生成选项[T]

我试图在ScalaCheck中生成可选参数,但没有成功.

似乎没有直接机制.Gen.containerOf[Option, Thing](thingGenerator)失败,因为它无法找到隐含的Buildable[Thing, Option].

我试过了

for {
  thing <- Gen.listOfN[Thing](1, thingGenerator)
} yield thing.headOption
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为listOfN产生一个总长度为N的列表.结果我总是得到一个Some[Thing].类似地,listOf1不起作用,因为(a)它不产生空列表,而且(b)它效率低,因为我不能设置元素数量的最大限制.

我怎样才能生成Option[Thing]包含Nones的内容?

编辑:我找到了解决方案,但它并不简洁.有比这更好的方法吗?

for {
  thing <- for {
    qty <- Gen.choose(0,1)
    things <- Gen.listOfN[Thing](qty, thingGenerator)
  } yield things.headOption
} yield thing
Run Code Online (Sandbox Code Playgroud)

编辑2:我将此概括为

def optional[T](g: Gen[T]) = 
  for (qty <- Gen.choose(0, 1); xs <- Gen.listOfN[T](qty, g)) yield xs.headOption
Run Code Online (Sandbox Code Playgroud)

所以我不必多次写它.但肯定这已经在图书馆了,我只是错过了它?

scala scalacheck

20
推荐指数
2
解决办法
2542
查看次数

参数为varargs时的Class.getMethod

我需要调用Class.getMethod(java.lang.String,java.lang.Class ...)来获取一个方法,其中一个varargs参数是一个varargs.

目前我正在尝试:

// to get jdbcTemplate.queryForObject(RowMapper, Object...)
jdbcTemplate.getClass().getMethod("queryForObject", RowMapper.class, Object.class);
Run Code Online (Sandbox Code Playgroud)

哪个结果,不足为奇

Caused by: java.lang.NoSuchMethodException: org.springframework.jdbc.core.simple.SimpleJdbcTemplate.queryForObject(java.lang.String,     org.springframework.jdbc.core.RowMapper, java.lang.Object)
at java.lang.Class.throwNoSuchMethodException(Class.java:283)
at java.lang.Class.getMethod(Class.java:825)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

java reflection variadic-functions

17
推荐指数
1
解决办法
6122
查看次数

查询以查找所有FK约束及其删除规则(SQL Server)

在SQL Server 2005中,我可以发出SQL查询来列出数据库中表的所有FK约束,并显示删除规则吗?(即没有,级联,设置为null或设置默认值)

我正在寻找的输出类似于:

FK_NAME                  ON_DELETE
==================================
FK_LINEITEM_STATEMENT    CASCADE
FK_ACCOUNTREP_CLIENT     NOTHING
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2005 constraints

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

来自joda-time DateTimeFormatter的模式字符串?

是否有可能从joda-time DateTimeFormatter获取模式字符串?

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMdd");
String originalPattern = formatter. ???
Run Code Online (Sandbox Code Playgroud)

java jodatime

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

来自JSON的Concat号码没有使用jq的双引号

我有每行1个json文档start_idend_id每个文档中的字段和文件.我想使用jq来提取它们并将它们打印在同一行上.

到目前为止,我有:

cat part* | jq '"\(.start_id) \(.end_id)"' | sed s/\"//g | head
Run Code Online (Sandbox Code Playgroud)

这有效,但我需要sed删除双引号.

为了改善我的jq-foo,有没有办法在不使用sed的情况下做到这一点?

例如给定

{"start_id":1,"end_id":50}
{"start_id":50,"end_id":99}
{"start_id":99,"end_id":12}
Run Code Online (Sandbox Code Playgroud)

得到

1 50
50 99
99 12
Run Code Online (Sandbox Code Playgroud)

代替

"1 50"
"50 99"
"99 12"
Run Code Online (Sandbox Code Playgroud)

json jq

16
推荐指数
1
解决办法
3423
查看次数