我无法在IntelliJ中格式化我的代码.
我可以看到边距线(默认为120列),但似乎从菜单激活:
代码 - >重新格式化代码
只是忽略了这个边际.
在尝试使用ScalaCheck和ScalaTest编写测试时,我遇到了一个令人讨厌的异常.这是我的依赖:
libraryDependencies ++= Seq(
"org.scalatest" %% "scalatest" % "2.2.6" % "test",
"org.scalacheck" %% "scalacheck" % "1.13.0" % "test"
)
Run Code Online (Sandbox Code Playgroud)
这是我的测试:
import org.scalatest.PropSpec
import org.scalatest.prop.Checkers
class MyPropSpec extends PropSpec with Checkers {
property("List.concat") {
check((a: List[Int], b: List[Int]) => a.size + b.size == (a ::: b).size)
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行这个时,我得到:
DeferredAbortedSuite:
Exception encountered when attempting to run a suite with class name: org.scalatest.DeferredAbortedSuite *** ABORTED ***
java.lang.IncompatibleClassChangeError: Implementing class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368) …Run Code Online (Sandbox Code Playgroud) public class Sample<T>{
T data;
Sample(){
data = ????;
}
}
Run Code Online (Sandbox Code Playgroud)
如何为数据分配默认值?
我们的应用程序依赖于仅在工作时间内处于活动状态的数据源。我们在 Prometheus 中设置了警报,以在数据流干涸时通知我们。但是,我们不希望在工作时间以外收到“错误”警报。
我按照这篇文章设置了一个“假警报”,它会在非工作时间触发并且应该禁止所有其他警报。
设置如下所示。在普罗米修斯中:
rules:
# This special alert will be used to inhibit all other alerts outside business hours
- alert: QuietHours
expr: day_of_week() == 6 or day_of_week() == 0 or europe_amsterdam_hour >= 18 or europe_amsterdam_hour <= 7
for: 1m
labels:
notification: page
severity: critical
annotations:
description: 'This alert fires during quiet hours. It should be blackholed by Alertmanager.'
Run Code Online (Sandbox Code Playgroud)
该europe_amsterdam_hour函数被定义为规则,为了简洁起见,本示例中省略了该函数。
在警报管理器中:
routes:
# ensure to forward to blackhole receiver during quiet hours
- match: …Run Code Online (Sandbox Code Playgroud) 考虑以下结构(实际上结构有点复杂):
case class A(id:String,name:String) {
override def equals(obj: Any):Boolean = {
if (obj == null || !obj.isInstanceOf[A]) return false
val a = obj.asInstanceOf[A]
name == a.name
}
override def hashCode() = {
31 + name.hashCode
}
}
val a1 = A("1","a")
val a2 = A("2","a")
val a3 = A("3","b")
val list = List((a1,a2),(a1,a3),(a2,a3))
Run Code Online (Sandbox Code Playgroud)
现在让我们说我想将所有元组分组为相同的A. 我可以像这样实现它
list.groupBy {
case (x,y) => (x,y)
}
Run Code Online (Sandbox Code Playgroud)
但是,我不喜欢在这里使用模式匹配,因为它不会在这里添加任何内容.我想要一些简单的东西,比如:
list.groupBy(_)
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不编译.我甚至不这样做:
list.groupBy[(A,A)](_)
Run Code Online (Sandbox Code Playgroud)
有什么建议如何简化我的代码?
我正在尝试创建一个抽象数组方法,指定数组的这个抽象对象只能容纳3个项目.
现在我已经尝试过这样的事情,public abstract BaseAdapter[3] adapters();但它抱怨一个错误,它不能这样做.
是他们的另一种方式还是我需要做的public abstract BaseAdapter[] adapters();?
这样可以正常工作但是子类仍然可以传递大于3个项目的数组
java ×2
scala ×2
arrays ×1
generics ×1
group-by ×1
prometheus ×1
scalacheck ×1
scalatest ×1
tuples ×1