我正在学习scala并尝试了以下形式Scala Cookbook:
trait Animal
trait FurryAnimal extends Animal
case class Dog(name:String) extends Animal
case class Cat(name:String) extends Animal
Run Code Online (Sandbox Code Playgroud)
现在,当我做到以下时:
val x = Array(Dog("Fido"),Cat("Felix"))
Run Code Online (Sandbox Code Playgroud)
它显示结果为:
x:Array[Product with Serializable with Animal] = Array(Dog(Fido),Cat(Felix))
Run Code Online (Sandbox Code Playgroud)
虽然我知道案例类与Product trait混在一起
我没有得到的是: Product with Serializable with Animal
据我所知,产品与模式匹配有关
我确实谷歌它,但没有得到任何东西.请帮助我详细了解这个概念.
谢谢
我有以下代码:
class Base{
protected val alpha ="Alpha";
protected def sayHello = "Hello";
}
class Derived extends Base{
val base = new Base;
def hello = println(this.alpha +" "+this.sayHello) ;
// def hello = println(base.alpha +" "+base.sayHello) ; // don't compile
}
object MyObj extends App{
val x=new Derived;
x.hello;
}
Run Code Online (Sandbox Code Playgroud)
在课堂上Base,如果我的标签protected与this,代码工作正常; 如果我不标记它this,一切都按预期工作.
是protected和protected[this]相当于Scala呢?如果是,为什么Scala会同时提供?如果没有,它们有何不同?
虽然我的应用程序中编写拦截我注意到HandlerInterceptor并WebRequestInterceptor 在这里.
我注意到HandlerInterceptor的方法取HttpServletRequest,HttpServletResponse,Object(处理器)和其他PARAMS而WebRequestInterceptor采取WebRequest(的包装HttpServletRequest).
但我不知道这两个拦截器有什么区别.
虽然看到Spring API我猜可以做到这一点WebRequestInterceptor无法提交响应HandlerInterceptor.如果我错了,请在这里纠正我.
在Java 8 Instant.now()方法中显示错误的时间.我的代码看起来像:
import java.time.*;
import java.time.temporal.*;
public class DateTimeDemo{
public static void main(String []args){
Instant now = Instant.now();
System.out.println(now);
}
}
Run Code Online (Sandbox Code Playgroud)
它的日期部分是正确的但是时间部分.
例如
2016-07-11T11:01:25.498Z但在我的系统中是4.31 PM
我正在使用Asia/Calcutta TimeZone
在斯卡拉为不耐烦据说
函数在其参数中是反变量的,在结果类型中是协变的
这是直截了当且易于理解的,但它在同一主题中说
但是在函数参数内部,方差翻转 - 其参数是协变的
def foldLeft[B](z : B)(op : (B, A) => B) : B
Run Code Online (Sandbox Code Playgroud)
我不清楚它说的是什么.
我试过一些博客
http://blog.kamkor.me/Covariance-And-Contravariance-In-Scala/
但没有得到明确的理解.
我知道ng generate application <app-name>仅在角度应用程序文件夹中有效的区别。但是还有其他区别。
我已经阅读了很多关于为什么ThreadLocal变量需要是静态的文章(尽管没有必要),但我没有理解为什么它应该是静态的.
我在这里阅读了许多其他链接,但没有得到这个想法.
我做过这样的事情
public class ThreadLocalDemo{
public static void main(String[]args)throws Exception{
SharedRersource r1= new SharedRersource();
Thread t1= new Thread(r1);
Thread t2= new Thread(r1);
t1.start();
t2.start();
t1.join();
t2.join();
System.out.println("Main thread Exiting...");
}
}
class SharedRersource implements Runnable{
private ThreadLocal<Integer> threadId = new ThreadLocal(){
protected Integer initialValue(){
return (int)(Math.random()*100);
}
};
public void run(){
try{
Thread.sleep(2000);
}
catch(InterruptedException e){
e.printStackTrace();
}
System.out.println(threadId.get());
}
};
Run Code Online (Sandbox Code Playgroud)
这里线程t1和t2具有threadId的私有副本,而不是为什么它应该是静态的
请更好地了解我.谢谢
我遇到了以下情况:
我理解这个:
在类的类型参数部分中,如果S是T的边界,则类型变量T直接依赖于类型变量S,而如果T直接依赖于S或T直接取决于依赖于的类型变量U,则T依赖于S. S(递归使用此定义).
但
如果类的类型参数部分中的类型变量依赖于自身,那么这是一个编译时错误.
这是什么意思 ? 参考
在Fedora中尝试JShell时,我尝试使用此处指定的代码段转换快捷方式 ,但我认为它不起作用它正在显示
Shift-Tab之后出现意外字符。使用“ i”进行自动导入,或使用“ v”进行变量创建。有关更多信息,请参见:
/帮助快捷方式
我尝试了这些消息中指定的方法,但结果仍然相同
任何想法或我做错了什么?
$ javac-版本
Java 9
Java版本
openjdk版本“ 9”
OpenJDK运行时环境(内部版本9 + 181)
OpenJDK 64位服务器VM(内部版本9 + 181,混合模式)
这是我想做的事情:
jshell $新的JFrame
我键入new JFrame然后按Shift + Tab键(按住Shift键并释放Tab键,然后按i键)。根据文档,它应该显示类似以下内容:
0: Do nothing
1: import: javax.swing.JFrame
Choice:
Run Code Online (Sandbox Code Playgroud)
但它显示
Shift-Tab之后出现意外字符。使用“ i”进行自动导入,或使用“ v”进行变量创建。有关更多信息,请参见:
代替
我有3罐杰克逊图书馆
我成功地为core和annotation创建了module-info.java,并使用jdeps将它们转换为Named maodule.
对于数据绑定,我尝试了以下命令:
jdeps --generate-module-info.--module-path%JAVA_HOME%\ jomds; jackson.core; jackson.annotations existingmods\jackson-databind-2.8.10.jar
现在发生以下错误:
Missing dependence: .\jackson.databind\module-info.java not generated
Error: missing dependencies
com.fasterxml.jackson.databind.AnnotationIntrospector -> com.fasterxml.jackson.annotation.JsonCreator not found
com.fasterxml.jackson.databind.AnnotationIntrospector -> com.fasterxml.jackson.annotation.JsonCreator$Mode not found
com.fasterxml.jackson.databind.AnnotationIntrospector -> com.fasterxml.jackson.annotation.JsonFormat not found
com.fasterxml.jackson.databind.AnnotationIntrospector -> com.fasterxml.jackson.annotation.JsonFormat$Value not found
com.fasterxml.jackson.databind.AnnotationIntrospector -> com.fasterxml.jackson.annotation.JsonIgnoreProperties not found
com.fasterxml.jackson.databind.AnnotationIntrospector -> com.fasterxml.jackson.annotation.JsonIgnoreProperties$Value not found.
Run Code Online (Sandbox Code Playgroud)
如何为jackson-databind生成module-info.java?
java ×5
scala ×3
java-9 ×2
angular ×1
case-class ×1
datetime ×1
generics ×1
jar ×1
java-8 ×1
java-module ×1
jdeps ×1
jshell ×1
protected ×1
servlet-3.0 ×1
spring ×1
spring-mvc ×1
this ×1
traits ×1
type-systems ×1
types ×1