小编opt*_*nal的帖子

Scala案例类使用Serializable扩展Product

我正在学习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

据我所知,产品与模式匹配有关

我确实谷歌它,但没有得到任何东西.请帮助我详细了解这个概念.

谢谢

types scala traits case-class

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

受保护和受保护之间的区别[本]

我有以下代码:

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,如果我的标签protectedthis,代码工作正常; 如果我不标记它this,一切都按预期工作.

protectedprotected[this]相当于Scala呢?如果是,为什么Scala会同时提供?如果没有,它们有何不同?

scala protected this

12
推荐指数
1
解决办法
2607
查看次数

HandlerInterceptor和WebRequestInterceptor之间的区别?

虽然我的应用程序中编写拦截我注意到HandlerInterceptorWebRequestInterceptor 在这里.

我注意到HandlerInterceptor的方法取HttpServletRequest,HttpServletResponse,Object(处理器)和其他PARAMS而WebRequestInterceptor采取WebRequest(的包装HttpServletRequest).

但我不知道这两个拦截器有什么区别.

虽然看到Spring API我猜可以做到这一点WebRequestInterceptor无法提交响应HandlerInterceptor.如果我错了,请在这里纠正我.

java spring spring-mvc servlet-3.0

9
推荐指数
1
解决办法
3958
查看次数

java 8 Instant.now()显示错误的即时时间

在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

java datetime java-8

8
推荐指数
1
解决办法
8429
查看次数

scala中的协方差和方差翻转

斯卡拉为不耐烦据说

函数在其参数中是反变量的,在结果类型中是协变的

这是直截了当且易于理解的,但它在同一主题中说

但是在函数参数内部,方差翻转 - 其参数是协变的

它以IteratorfoldLeft方法 为例:

 def foldLeft[B](z : B)(op : (B, A) => B) : B 
Run Code Online (Sandbox Code Playgroud)

我不清楚它说的是什么.

我试过一些博客

  1. http://www.artima.com/pins1ed/type-parameterization.html

  2. http://blog.kamkor.me/Covariance-And-Contravariance-In-Scala/

  3. http://blogs.atlassian.com/2013/01/covariance-and-contravariance-in-scala/

但没有得到明确的理解.

type-systems scala

7
推荐指数
1
解决办法
517
查看次数

ng generate application <app-name>和ng new <app-new>之间的区别

我知道ng generate application <app-name>仅在角度应用程序文件夹中有效的区别。但是还有其他区别。

angular angular-cli-v6

7
推荐指数
3
解决办法
2567
查看次数

为什么ThreadLocal变量需要静态?

我已经阅读了很多关于为什么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的私有副本,而不是为什么它应该是静态的

请更好地了解我.谢谢

java multithreading

6
推荐指数
1
解决办法
2162
查看次数

泛型类型参数取决于它自己

我遇到了以下情况:

我理解这个:

在类的类型参数部分中,如果S是T的边界,则类型变量T直接依赖于类型变量S,而如果T直接依赖于S或T直接取决于依赖于的类型变量U,则T依赖于S. S(递归使用此定义).

如果类的类型参数部分中的类型变量依赖于自身,那么这是一个编译时错误.

这是什么意思 ? 参考

java generics

6
推荐指数
1
解决办法
290
查看次数

JShell &lt;Shift + tab i&gt;在jdk 9中无法正常工作

在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”进行变量创建。有关更多信息,请参见:

代替

java java-9 jshell

6
推荐指数
1
解决办法
545
查看次数

在java 9中使用jdeps为自动模块创建module-info

我有3罐杰克逊图书馆

  1. 杰克逊核心2.8.10.jar
  2. 杰克逊的注解 - 2.8.0.jar
  3. 杰克逊 - 数据绑定,2.8.10.jar

我成功地为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?

jar java-9 jdeps java-module

6
推荐指数
1
解决办法
6275
查看次数