Scala

Scala

Error:scalac: error while loading

回复

JVMer 回复了问题 1 人关注 1 个回复 2067 次浏览 2018-03-12 19:46 来自相关话题

谁知道scala处理两个时间比较大小代码

贾婷婷 回复了问题 2 人关注 1 个回复 4542 次浏览 2018-03-11 16:54 来自相关话题

不用spark,单纯的用scala,怎么做笛卡尔积呢

回复

周小泉 发起了问题 1 人关注 0 个回复 2139 次浏览 2018-02-12 12:28 来自相关话题

apply 方法的存在 就是为了方便调用静态和非静态 同名类 里面的方法更写法 更简单吗??

回复

周小泉 发起了问题 1 人关注 0 个回复 1134 次浏览 2018-02-12 12:28 来自相关话题

scala 用静态obiect初始化class 这么做 是为了安全 还是别的目的

回复

周小泉 发起了问题 1 人关注 0 个回复 1127 次浏览 2018-02-12 12:28 来自相关话题

求问spark怎么读入标准输入啊???

回复

周小泉 发起了问题 1 人关注 0 个回复 962 次浏览 2018-02-12 12:28 来自相关话题

大家好,scala初学者.有个问题想问下,怎样在java代码中声明scala的类呢?

回复

周小泉 发起了问题 1 人关注 0 个回复 1009 次浏览 2018-02-12 12:27 来自相关话题

请问编译成jar的时候是不是应该去掉assembly

回复

周小泉 发起了问题 1 人关注 0 个回复 1115 次浏览 2018-02-12 12:27 来自相关话题

请问mllib源码里面import这个包有啥用呢?

回复

周小泉 发起了问题 1 人关注 0 个回复 1101 次浏览 2018-02-12 12:27 来自相关话题

"请教一下mllib源代码中大量存在的 @ 是什么意思呢? 比如 @Since(""0.8.0"")"

回复

周小泉 发起了问题 1 人关注 0 个回复 1069 次浏览 2018-02-12 12:27 来自相关话题

Scala里面中括号【】主要用来干啥子的呢

回复

周小泉 发起了问题 1 人关注 0 个回复 2641 次浏览 2018-02-12 12:27 来自相关话题

请问下:如何逐行读取HDFS文件?

回复

周小泉 发起了问题 1 人关注 0 个回复 1350 次浏览 2018-02-12 12:26 来自相关话题

用Scala写的jar包该怎么反编译成Scala呢?

fish 回复了问题 2 人关注 1 个回复 5558 次浏览 2017-09-29 18:12 来自相关话题

刚入门scala,请教一个语法

回复

那小子真帅 回复了问题 1 人关注 1 个回复 1535 次浏览 2017-07-27 13:22 来自相关话题

kafka自带的zk与另外安装的zk,使用哪个比较好呢?有什么区别?

@CrazyChao 回复了问题 2 人关注 2 个回复 2890 次浏览 2017-06-15 19:06 来自相关话题

请问为什么在Scala里面调用python脚本却找不到路径?

zhongwen7710 回复了问题 2 人关注 1 个回复 4326 次浏览 2017-04-16 11:07 来自相关话题

windows环境下,在itellij IDEA中执行scala程序报错

IT_Angel 回复了问题 2 人关注 7 个回复 2680 次浏览 2017-04-13 13:14 来自相关话题

Error:scalac: error while loading

回复

JVMer 回复了问题 1 人关注 1 个回复 2067 次浏览 2018-03-12 19:46 来自相关话题

谁知道scala处理两个时间比较大小代码

回复

贾婷婷 回复了问题 2 人关注 1 个回复 4542 次浏览 2018-03-11 16:54 来自相关话题

不用spark,单纯的用scala,怎么做笛卡尔积呢

回复

周小泉 发起了问题 1 人关注 0 个回复 2139 次浏览 2018-02-12 12:28 来自相关话题

apply 方法的存在 就是为了方便调用静态和非静态 同名类 里面的方法更写法 更简单吗??

回复

周小泉 发起了问题 1 人关注 0 个回复 1134 次浏览 2018-02-12 12:28 来自相关话题

scala 用静态obiect初始化class 这么做 是为了安全 还是别的目的

回复

周小泉 发起了问题 1 人关注 0 个回复 1127 次浏览 2018-02-12 12:28 来自相关话题

求问spark怎么读入标准输入啊???

回复

周小泉 发起了问题 1 人关注 0 个回复 962 次浏览 2018-02-12 12:28 来自相关话题

大家好,scala初学者.有个问题想问下,怎样在java代码中声明scala的类呢?

回复

周小泉 发起了问题 1 人关注 0 个回复 1009 次浏览 2018-02-12 12:27 来自相关话题

请问编译成jar的时候是不是应该去掉assembly

回复

周小泉 发起了问题 1 人关注 0 个回复 1115 次浏览 2018-02-12 12:27 来自相关话题

请问mllib源码里面import这个包有啥用呢?

回复

周小泉 发起了问题 1 人关注 0 个回复 1101 次浏览 2018-02-12 12:27 来自相关话题

"请教一下mllib源代码中大量存在的 @ 是什么意思呢? 比如 @Since(""0.8.0"")"

回复

周小泉 发起了问题 1 人关注 0 个回复 1069 次浏览 2018-02-12 12:27 来自相关话题

Scala里面中括号【】主要用来干啥子的呢

回复

周小泉 发起了问题 1 人关注 0 个回复 2641 次浏览 2018-02-12 12:27 来自相关话题

请问下:如何逐行读取HDFS文件?

回复

周小泉 发起了问题 1 人关注 0 个回复 1350 次浏览 2018-02-12 12:26 来自相关话题

用Scala写的jar包该怎么反编译成Scala呢?

回复

fish 回复了问题 2 人关注 1 个回复 5558 次浏览 2017-09-29 18:12 来自相关话题

刚入门scala,请教一个语法

回复

那小子真帅 回复了问题 1 人关注 1 个回复 1535 次浏览 2017-07-27 13:22 来自相关话题

kafka自带的zk与另外安装的zk,使用哪个比较好呢?有什么区别?

回复

@CrazyChao 回复了问题 2 人关注 2 个回复 2890 次浏览 2017-06-15 19:06 来自相关话题

请问为什么在Scala里面调用python脚本却找不到路径?

回复

zhongwen7710 回复了问题 2 人关注 1 个回复 4326 次浏览 2017-04-16 11:07 来自相关话题

windows环境下,在itellij IDEA中执行scala程序报错

回复

IT_Angel 回复了问题 2 人关注 7 个回复 2680 次浏览 2017-04-13 13:14 来自相关话题

【Scala·语法·笔记】1、为主构造器参数形成的字段,设置 protected;2、类中定义同名字段却不报错的坑

曹志翔 发表了文章 0 个评论 1840 次浏览 2015-10-30 00:13 来自相关话题

结论: 1,通过 protected[this],可以把主构造器参数形成的字段的访问级别,设置成受保护类型 class Person(protected[this] var age : Int) { }   2, ...查看全部
结论:
1,通过 protected[this],可以把主构造器参数形成的字段的访问级别,设置成受保护类型
class Person(protected[this] var age : Int) { }
 
2,特定条件下,类定义中存在同名字段,却不会报错。(隐隐感觉会在将来的某个时候弄个Bug出来搞死自己,千万要避免字段同名)
条件:a,主构造器参数,没有 val 或 var;b,类中,定义了同名、非私有字段
class Person(age : Int) { //age 前加 val 或 var。就会报错
protected[this] var age : Int = _ //不写访问级别,或 protected[this],不报错;pribate[this] 报错
}

class Student extends Person(7) {
def schoolAge {
println(if (age > 6) "School Age" else "Preschool")
}
}

object Person extends App {
val s = new Student
s.schoolAge
s.age //无法在类外访问,但可以在子类中访问
}

 
分析过程:
 
ps.    刚抱怨完学习效率不高,又忍不住来扣这么个细节的地方。(耳边响起了玉海老师的嘱咐“学习的内容很多,要抓重点啊!)
不过,在学习这个知识点时,有些意外收获。还是发出来跟大家交流一下。
 
       事情是从陈超老师讲“主构造器参数自动形成类的字段”开始的。其中,有个知识点是“加 val 或 var,则对应的字段为 public;不加,则为 private”,那如果需要这个字段为 protected 该怎么声明呢?情景如下:
class Person(age : Int){
}

class Student extends Person(20){
println(age) // 报错:Not Found。因为 age 是 Person 类的私有类型
}

object Person extends App {
val s = new Student
}

       那么,如何在子类中访问父类“不带 val 或 var 的主构造器参数形成的字段”呢?当然,可以把该字段从主构造器的参数列表中去掉,挪到类中声明。但,只样一来,还需要再定义一个方法,用于设置该字段的值。能否依然“在主构造器的参数列表中”,又能是 protected?
 
       我做了以下尝试:
1,直接在类中定义同名字段。
       但显然 1 个类里,有 2 个同名字段,是不正常的。可万万没想到“没 有 报 错”。而且,类里定义的同名 protected 字段,可以在子类中访问,但就是主构造器参数的值,没有传给该字段。这么做就没有意义了(还得声明个方法设置 age 的值)。
class Person(age : Int){
protected[this] var age : Int = 10
}

class Student extends Person(20){
println(age) // 10 //意外的是,居然没有报错
}

object Person extends App {
val s = new Student
}

2,直接在主构造器参数上设置访问级别,可以有效使用
class Person(protected[this] var age : Int) { //一定要写 protected[this]。如果只写 protected,依然可以在类声明之外访问,却 “没 有 提 示”
}

class Student extends Person(7) {
def schoolAge {
println(if (age > 6) "School Age" else "Preschool")
}
}

object Person extends App {
val s = new Student
s.schoolAge
s.age //无法在类外访问,但可以在子类中访问
}