由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 发觉自己的Java编程风格在变
相关主题
Leetcode能不能支持guava呢?微软有必要这么鄙视java吗
好像懂JAva的比懂C++的多啊面经一坨 (转载)
看了一下Scala文档 其实就是一个小号的Java toyapple phone 面经
准备转回Java了工作中用熟了一种语言想换怎么办?
各种大牛说说Scala在金融界的应用?大家讨论一下what is the biggest difference between C, Java, C++?
学scala的Java找工作选择哪种技术啊,太迷茫啦
Recruiter说面试Java命令行相关内容本人数学专业,c++还是java
有FB的哥们现身说法FB有多忙么Java大牛推荐一本讲JVM工作原理的入门书吧? (转载)
相关话题的讨论汇总
话题: java话题: jvm话题: scala话题: sin话题: method
进入JobHunting版参与讨论
1 (共1页)
p*****2
发帖数: 21240
1
学了一轮scala,javascript,coffeescript的,现在回到Java发觉以前写好几行的代
码现在在追求一行来完成。看来多学点语言还是有好处的。
x*********w
发帖数: 533
2

还是多写几行清楚些

【在 p*****2 的大作中提到】
: 学了一轮scala,javascript,coffeescript的,现在回到Java发觉以前写好几行的代
: 码现在在追求一行来完成。看来多学点语言还是有好处的。

a***x
发帖数: 26368
3
易读性!易读性!

【在 p*****2 的大作中提到】
: 学了一轮scala,javascript,coffeescript的,现在回到Java发觉以前写好几行的代
: 码现在在追求一行来完成。看来多学点语言还是有好处的。

a****r
发帖数: 330
4
觉得最重要的还是testable
f********d
发帖数: 51
5
一行是okay的,关键多长。
其实这都不重要,重要的是model有多好,model好了,实际的代码本身就不会太复杂,
一行也没问题
a****l
发帖数: 8211
6
Not a good trend. Most probably would make the testing harder.

【在 p*****2 的大作中提到】
: 学了一轮scala,javascript,coffeescript的,现在回到Java发觉以前写好几行的代
: 码现在在追求一行来完成。看来多学点语言还是有好处的。

s******e
发帖数: 146
7
这是倒退吧。。
我最头疼的就是各种编程“技巧”了。

【在 p*****2 的大作中提到】
: 学了一轮scala,javascript,coffeescript的,现在回到Java发觉以前写好几行的代
: 码现在在追求一行来完成。看来多学点语言还是有好处的。

w********r
发帖数: 14958
8
if you think you are clever, don't do it.
l******k
发帖数: 586
9
最烦看到这种legacy code

【在 p*****2 的大作中提到】
: 学了一轮scala,javascript,coffeescript的,现在回到Java发觉以前写好几行的代
: 码现在在追求一行来完成。看来多学点语言还是有好处的。

p*****2
发帖数: 21240
10

这么写最大的优点之一就是易读性。你想想看做一件事情你是用一行来完成易读,还是
写几行易读?

【在 a***x 的大作中提到】
: 易读性!易读性!
相关主题
学scala的微软有必要这么鄙视java吗
Recruiter说面试Java命令行相关内容面经一坨 (转载)
有FB的哥们现身说法FB有多忙么apple phone 面经
进入JobHunting版参与讨论
p*****2
发帖数: 21240
11

这么写最大的优点之一就是更容易test。你想想看你是测试一行代码容易,还是测试几
行代码容易。如果几十个地方都这样,成百上千的地方都这样。更不要说这么写最大的
优点就是更难出bug了。

【在 a****r 的大作中提到】
: 觉得最重要的还是testable
p*****2
发帖数: 21240
12

这么写可不是legacy code,这差不多是现代语言共同追求的一个原则了。看看python,
ruby, scala, etc。

【在 l******k 的大作中提到】
: 最烦看到这种legacy code
p*****2
发帖数: 21240
13

这还真不算编程技巧。算编程理念吧。

【在 s******e 的大作中提到】
: 这是倒退吧。。
: 我最头疼的就是各种编程“技巧”了。

p*****2
发帖数: 21240
14

感觉这就是语言的trend。看看python, ruby吧。为什么他们一行就可以做到的事情,
Java非要写好几行?现在语言的发展趋势正是代码行数越来越少,而不是越来越多。

【在 a****l 的大作中提到】
: Not a good trend. Most probably would make the testing harder.
t****a
发帖数: 1212
15
同感,虽然不写java。另一个体会是喜欢把函数切割成更小的函数,这样更容易测试,
更容易理解。

【在 p*****2 的大作中提到】
: 学了一轮scala,javascript,coffeescript的,现在回到Java发觉以前写好几行的代
: 码现在在追求一行来完成。看来多学点语言还是有好处的。

p*****2
发帖数: 21240
16

大牛,我发现你的clojure的代码行数实在是太少了。可惜我看不懂,没法学习呀。

【在 t****a 的大作中提到】
: 同感,虽然不写java。另一个体会是喜欢把函数切割成更小的函数,这样更容易测试,
: 更容易理解。

t****a
发帖数: 1212
17
可能是因为你不太熟悉clojure的序列函数?http://clojure.org/cheatsheet
这些函数就是瑞士军刀..
这两天看haskell发现巨多函数名字都和clojure一样,估计是clojure直接抄过来的,
哈哈

【在 p*****2 的大作中提到】
:
: 大牛,我发现你的clojure的代码行数实在是太少了。可惜我看不懂,没法学习呀。

a****l
发帖数: 8211
18
比如,一个计算A=sin(a)+sin(b)+sin(c)我会写成
t1=sin(a)
t2=sin(b)
t3=sin(c)
A=t1+t2+t3
就是这样的把一行拆成很多行.

【在 p*****2 的大作中提到】
:
: 大牛,我发现你的clojure的代码行数实在是太少了。可惜我看不懂,没法学习呀。

p*****2
发帖数: 21240
19

这样做的好处是?

【在 a****l 的大作中提到】
: 比如,一个计算A=sin(a)+sin(b)+sin(c)我会写成
: t1=sin(a)
: t2=sin(b)
: t3=sin(c)
: A=t1+t2+t3
: 就是这样的把一行拆成很多行.

f*******t
发帖数: 7549
20
以java为例,某个函数调用抛出了异常,分开写可以立刻定位问题。写成一行没法
debug。

【在 p*****2 的大作中提到】
:
: 这样做的好处是?

相关主题
工作中用熟了一种语言想换怎么办?本人数学专业,c++还是java
大家讨论一下what is the biggest difference between C, Java, C++?Java大牛推荐一本讲JVM工作原理的入门书吧? (转载)
Java找工作选择哪种技术啊,太迷茫啦与 Java 相比,Ruby 有啥优势?
进入JobHunting版参与讨论
x*********w
发帖数: 533
21

不是吧。。。这个理由

【在 f*******t 的大作中提到】
: 以java为例,某个函数调用抛出了异常,分开写可以立刻定位问题。写成一行没法
: debug。

p*****2
发帖数: 21240
22

我一直以为大牛可以裸眼debug呢。

【在 f*******t 的大作中提到】
: 以java为例,某个函数调用抛出了异常,分开写可以立刻定位问题。写成一行没法
: debug。

c*****e
发帖数: 3226
23
that is why i recommended guava to you at java board before. u can write a
whole logic in one line.

【在 p*****2 的大作中提到】
: 学了一轮scala,javascript,coffeescript的,现在回到Java发觉以前写好几行的代
: 码现在在追求一行来完成。看来多学点语言还是有好处的。

p*****2
发帖数: 21240
24

a
大牛说的是。我昨天也看到有人提guava。不过对于我来说用guava还不如用scala吧?
我是想发挥java自有的一些能力。这样也可以使得对java的理解更上一层楼。

【在 c*****e 的大作中提到】
: that is why i recommended guava to you at java board before. u can write a
: whole logic in one line.

f********d
发帖数: 51
25
scala functin is anonymous inner class which is the same as guava in byte
code level.
but writing anonymous inner class in java is just not that convinient.
for the case sin(a)+sin(b)+sin(c).
why you need to seperate into different lines and debug because you DO NOT
have enough test coverage for sin().
this is not a drawback of writing in one line, but a push to get better test
coverage.
p*****2
发帖数: 21240
26

大牛啥时候有时间比较一下这两种语言呢/

【在 t****a 的大作中提到】
: 可能是因为你不太熟悉clojure的序列函数?http://clojure.org/cheatsheet
: 这些函数就是瑞士军刀..
: 这两天看haskell发现巨多函数名字都和clojure一样,估计是clojure直接抄过来的,
: 哈哈

l******k
发帖数: 586
27
你这话实在和你一贯的牛人形象不符啊...一行比多行易读,不是大一刚写代码的人才
有的论点嘛.
在不牺牲性能的情况下,拆开成几步能提供更多信息量。为了炫技写到一行里,可读性
实在差

【在 p*****2 的大作中提到】
:
: 大牛啥时候有时间比较一下这两种语言呢/

y*******g
发帖数: 6599
28
我很低级,我希望java有的scala特点是 java不应该允许重复define public/
protected的member。
今天调个bug弄了半天才发现是这个问题

【在 p*****2 的大作中提到】
: 学了一轮scala,javascript,coffeescript的,现在回到Java发觉以前写好几行的代
: 码现在在追求一行来完成。看来多学点语言还是有好处的。

p*****2
发帖数: 21240
29

有时间的话去看看FP吧。

【在 l******k 的大作中提到】
: 你这话实在和你一贯的牛人形象不符啊...一行比多行易读,不是大一刚写代码的人才
: 有的论点嘛.
: 在不牺牲性能的情况下,拆开成几步能提供更多信息量。为了炫技写到一行里,可读性
: 实在差

p*****2
发帖数: 21240
30

大牛scala学的如何了?还有两个星期就结课了。
你说的这个问题是什么意思?可以define几个同名的member,不同的access权限?

【在 y*******g 的大作中提到】
: 我很低级,我希望java有的scala特点是 java不应该允许重复define public/
: protected的member。
: 今天调个bug弄了半天才发现是这个问题

相关主题
Clarifi面经好像懂JAva的比懂C++的多啊
没法再面试了看了一下Scala文档 其实就是一个小号的Java toy
Leetcode能不能支持guava呢?准备转回Java了
进入JobHunting版参与讨论
y*******g
发帖数: 6599
31
不是啊
java可以
class A{
protected Something value;
}
class B extends A{
protected Something value; //不报错!连warning都没有
}

【在 p*****2 的大作中提到】
:
: 大牛scala学的如何了?还有两个星期就结课了。
: 你说的这个问题是什么意思?可以define几个同名的member,不同的access权限?

p*****2
发帖数: 21240
32

还真是。这个为什么这么设计呀?是Java的缺陷还是别有用意呀?

【在 y*******g 的大作中提到】
: 不是啊
: java可以
: class A{
: protected Something value;
: }
: class B extends A{
: protected Something value; //不报错!连warning都没有
: }

y*******g
发帖数: 6599
33
不知道,我觉得是实现错误。

【在 p*****2 的大作中提到】
:
: 还真是。这个为什么这么设计呀?是Java的缺陷还是别有用意呀?

p*****2
发帖数: 21240
34

这个好像就是override吧?public的也可以。跟method override一样?

【在 y*******g 的大作中提到】
: 不知道,我觉得是实现错误。
y*******g
发帖数: 6599
35
不一样,function runtime的时候只有一个,
这种情况下field有两个了,而且function call永远是run time type, field access
是compile type。

【在 p*****2 的大作中提到】
:
: 这个好像就是override吧?public的也可以。跟method override一样?

p*****2
发帖数: 21240
36

access
看了一下。确实是。这东西一般肯定不使用,但是你用错了就不好debug了。还是Java
自己就禁止好。

【在 y*******g 的大作中提到】
: 不一样,function runtime的时候只有一个,
: 这种情况下field有两个了,而且function call永远是run time type, field access
: 是compile type。

x*********w
发帖数: 533
37

靠,这哥们火气怎么这么大?

【在 l******k 的大作中提到】
: 你这话实在和你一贯的牛人形象不符啊...一行比多行易读,不是大一刚写代码的人才
: 有的论点嘛.
: 在不牺牲性能的情况下,拆开成几步能提供更多信息量。为了炫技写到一行里,可读性
: 实在差

p*****2
发帖数: 21240
38

貌似没学过FP。不过也无所谓了。大家都是这么过来的。我最近要好好学习一下Java和
Python了。

【在 x*********w 的大作中提到】
:
: 靠,这哥们火气怎么这么大?

f********d
发帖数: 51
39
it's not a bug of any javac implementation but a JVM specification -
socially known as dynamic biding and static binding. academically in JVM
spec - linking/resolution
http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-5.html#j
y*******g
发帖数: 6599
40
这两个没关系吧,javac可以生成任何jvm spec的code,也可以拒绝生成。就像scala一
样报个错就好了

【在 f********d 的大作中提到】
: it's not a bug of any javac implementation but a JVM specification -
: socially known as dynamic biding and static binding. academically in JVM
: spec - linking/resolution
: http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-5.html#j

相关主题
准备转回Java了Recruiter说面试Java命令行相关内容
各种大牛说说Scala在金融界的应用?有FB的哥们现身说法FB有多忙么
学scala的微软有必要这么鄙视java吗
进入JobHunting版参与讨论
f********d
发帖数: 51
41
what do you think of this? it's good or bad??
def shanghaiGold = `LN_GOLD * `GBPvCNH * (1 + `SHIBOR)
for example this is how you calculate shanghai gold price by london gold.
now it's good, because you can understand what this function does very
easily
and ` is a function to convert to a list of big decimal, + being overriden
for the list of big decimal. the same as *. the return type is also a list
of big decimal rather than a single number.
there are tons of function calls and conversions in that line.
as a developer point of view, exception always thrown from either ` method,
+ method or * method. you dont worry about that function.
from readability point of view, it's much easier to read and understand.
only poor developer will challenge, because they dont know how to trace the
code

【在 l******k 的大作中提到】
: 你这话实在和你一贯的牛人形象不符啊...一行比多行易读,不是大一刚写代码的人才
: 有的论点嘛.
: 在不牺牲性能的情况下,拆开成几步能提供更多信息量。为了炫技写到一行里,可读性
: 实在差

f********d
发帖数: 51
42
if you read that section carefully, it's not defining what byte code
instruments they are. it's defining how you lookup your field and method.
and of course, a speicial javac can refuse to do that. then fundamentally it
's not java, maybe javaX. :) it's easier for scala, because it's called
scalac, it doesn't need to worry about the name and dont have to claim
himself as java. it only needs to say i'm compatible with java AT RUNTIME.
you have to follow jvm spec when implement, you can give warning but not
error.
anything the jvm spec doens't restrict, you can do whatever you want.
that's why volatile keyword is not that strict in JVM spec comparing to the
java lanaguage definition.
because it needs to allow people to do pre-fetch

【在 y*******g 的大作中提到】
: 这两个没关系吧,javac可以生成任何jvm spec的code,也可以拒绝生成。就像scala一
: 样报个错就好了

f********d
发帖数: 51
43
and the reason why scala throws error is because of the way it treats def
and val
you can do:
class A {def a="a"}
class B extends A { override val a="b"}
if you go with javap, you will get:
public class B extends A{
public java.lang.String a();
public B()
}
at byte code level, val is indeed converted to a method. in other word,
scala doesn't treat the field as real field but methods.
methods obviously need to follow method resolution which is override.
technically, scala is really following jvm spec.

【在 y*******g 的大作中提到】
: 这两个没关系吧,javac可以生成任何jvm spec的code,也可以拒绝生成。就像scala一
: 样报个错就好了

d******k
发帖数: 4295
44
写程序不是给自己看的,要考虑以后可能会有无数次修改和其他程序员接手。
举个例子,
某个程序里的flag由A,B,C,D,E,.....H...来决定(可以是变量,表达式或者函数)
所谓的简洁技巧写法(复杂的注释放到最前面)
/*
comments
comments
.....
.....
comments
*/
bool flag = ((A<0) & !B | C) | ((D>E) &
((A==0) &... ) |
((A==1) ...) &
((A==2) ...) &
((A==3) ...) &
(H>0?(F>0):(J<0))
所谓的复杂函数写法(注释在每一行)
bool GetFlag(A,B,C,....H)
{
bool rtn = true;
if (A<0)//comments
{
if (!B)
if (C)
}else//comments
{
switch(A)
case 0: //comments
case 1: //comments
case 2: //comments
}
return rtn;
}
随手写的伪代码,语法问题很多,大家领会精神就好,嘿嘿。
如果你接手一个项目需要维护修改某个模块,哪一种写法是你希望看到的呢?
我想不会是第一种吧。
函数写法除了容易理解,好debug,在version control的时候也非常容易看到每一次修
改后的差别。
ps:我一向潜水,不过前不久就碰到过需要修改的程序是之前某个高人写的很有技巧性
的程序,我很痛苦的把历史里的6,7个版本比较阅读,才彻底搞清楚了逻辑关系,还发
现在某一次修改后,之前的人忘了更新写在开头的注释,因此看到这个帖子有感而发。
呵呵

python,

【在 p*****2 的大作中提到】
:
: 貌似没学过FP。不过也无所谓了。大家都是这么过来的。我最近要好好学习一下Java和
: Python了。

f********d
发帖数: 51
45
我想
((A<0) & !B | C)
肯定是代表这某种业务意义。那为什么不把他分出来呢。
并且,一提到flag,我马上就得出结论,你的OO的model有问题。为什么要有flag,就
算database里用了flag,程序里也可以换成object hierarchy。
这个flag肯定是用作classify某些行为的。那为什么不弄一个configurable的DSL
driven的classifier呢?
这不是一个站得住脚的反对oneliner的理由

【在 d******k 的大作中提到】
: 写程序不是给自己看的,要考虑以后可能会有无数次修改和其他程序员接手。
: 举个例子,
: 某个程序里的flag由A,B,C,D,E,.....H...来决定(可以是变量,表达式或者函数)
: 所谓的简洁技巧写法(复杂的注释放到最前面)
: /*
: comments
: comments
: .....
: .....
: comments

f********d
发帖数: 51
46
一向以来我只推崇类级别的注释,
行级别的注释只能证明写那个程序的程序员的技能不够好,除了用来实现paper上算法
的程序
d******k
发帖数: 4295
47
我只是随便举个例子,code本身没有任何意义。说实话,我现在都不知道我为什么要写
那个flag和getflag()了。呵呵
每个条件都加注释的方法属于极端举例,实际中也没人这么折腾。只不过有时因为某个
特殊原因更改某个子条件时,程序员会在后边直接加注释注明原因。
话说回来,在很多非IT传统行业的项目开发过程中,需要扩展的功能超出了原有的设计
,但因为种种原因,不能重新设计。只能修修补补,用一些替代方法实现功能,在历经
若干个PM和无数程序员因很多年改来改去之后,程序里面出现一些奇怪的codes是很正
常的。
总而言之,我觉得做项目是要给后来人维护修改的,还是不要太多个人技巧的好,老老
实实的,一行程序完成一项指令最好。

【在 f********d 的大作中提到】
: 我想
: ((A<0) & !B | C)
: 肯定是代表这某种业务意义。那为什么不把他分出来呢。
: 并且,一提到flag,我马上就得出结论,你的OO的model有问题。为什么要有flag,就
: 算database里用了flag,程序里也可以换成object hierarchy。
: 这个flag肯定是用作classify某些行为的。那为什么不弄一个configurable的DSL
: driven的classifier呢?
: 这不是一个站得住脚的反对oneliner的理由

y*******g
发帖数: 6599
48
受教了 多谢

【在 f********d 的大作中提到】
: and the reason why scala throws error is because of the way it treats def
: and val
: you can do:
: class A {def a="a"}
: class B extends A { override val a="b"}
: if you go with javap, you will get:
: public class B extends A{
: public java.lang.String a();
: public B()
: }

g*****g
发帖数: 34805
49
Once you hit a NullPointerException, you'll believe otherwise.

【在 p*****2 的大作中提到】
:
: 貌似没学过FP。不过也无所谓了。大家都是这么过来的。我最近要好好学习一下Java和
: Python了。

p*****2
发帖数: 21240
50

同受教

【在 y*******g 的大作中提到】
: 受教了 多谢
相关主题
面经一坨 (转载)大家讨论一下what is the biggest difference between C, Java, C++?
apple phone 面经Java找工作选择哪种技术啊,太迷茫啦
工作中用熟了一种语言想换怎么办?本人数学专业,c++还是java
进入JobHunting版参与讨论
p*****2
发帖数: 21240
51

看来你是典型的指令型编程的思维。

【在 d******k 的大作中提到】
: 我只是随便举个例子,code本身没有任何意义。说实话,我现在都不知道我为什么要写
: 那个flag和getflag()了。呵呵
: 每个条件都加注释的方法属于极端举例,实际中也没人这么折腾。只不过有时因为某个
: 特殊原因更改某个子条件时,程序员会在后边直接加注释注明原因。
: 话说回来,在很多非IT传统行业的项目开发过程中,需要扩展的功能超出了原有的设计
: ,但因为种种原因,不能重新设计。只能修修补补,用一些替代方法实现功能,在历经
: 若干个PM和无数程序员因很多年改来改去之后,程序里面出现一些奇怪的codes是很正
: 常的。
: 总而言之,我觉得做项目是要给后来人维护修改的,还是不要太多个人技巧的好,老老
: 实实的,一行程序完成一项指令最好。

t****a
发帖数: 1212
52
这也是我很困惑的地方。
Paul Graham宣称要beat the average,按照这个论点,用先进的技术,更抽象的语言
,达到更高的效率和可读性,可维护性(指让跟你一派的程序员,不甘average的程序
员来维护),是对的。
大公司强调的却是人员的可替换性。从这个角度上讲,个人追求效率追求卓越反而不是
大公司喜欢的。换句话说,大公司喜欢be the average。
把时间倒退30年到80年代初,如果你在使用汇编的计算机公司里用unix和c,那么你就
是个怪物,和大家不合群,就算效率高,公司也不一定喜欢。
怎么办呢?

【在 d******k 的大作中提到】
: 我只是随便举个例子,code本身没有任何意义。说实话,我现在都不知道我为什么要写
: 那个flag和getflag()了。呵呵
: 每个条件都加注释的方法属于极端举例,实际中也没人这么折腾。只不过有时因为某个
: 特殊原因更改某个子条件时,程序员会在后边直接加注释注明原因。
: 话说回来,在很多非IT传统行业的项目开发过程中,需要扩展的功能超出了原有的设计
: ,但因为种种原因,不能重新设计。只能修修补补,用一些替代方法实现功能,在历经
: 若干个PM和无数程序员因很多年改来改去之后,程序里面出现一些奇怪的codes是很正
: 常的。
: 总而言之,我觉得做项目是要给后来人维护修改的,还是不要太多个人技巧的好,老老
: 实实的,一行程序完成一项指令最好。

t****a
发帖数: 1212
53
c程序员也会对java程序员说,当你们遇到gc出问题了的时候,你们就傻眼了,谁让你
们偷懒不管理内存?
这都是一样的啊。

【在 g*****g 的大作中提到】
: Once you hit a NullPointerException, you'll believe otherwise.
l******k
发帖数: 586
54
诶,求教一下,FP是啥?

【在 p*****2 的大作中提到】
:
: 看来你是典型的指令型编程的思维。

p*****2
发帖数: 21240
55

functional programming

【在 l******k 的大作中提到】
: 诶,求教一下,FP是啥?
d******k
发帖数: 4295
56
我觉得beat the average是startup和大公司研究性质工作需要的,属于小众。比如楼
主peking2和版上很多牛人。
be the average是做长期项目需要的,比如我和大多数,呵呵。
就像银河英雄传说里说的一样,绝对优秀的独裁统治肯定比民主制度要更有效率。
大公司里头的绝大多数managers就像中国足协主席一样,都想着怎么利用现有的资源弄
点政绩出来,从来没有人去想着抓青少年足球。

【在 t****a 的大作中提到】
: 这也是我很困惑的地方。
: Paul Graham宣称要beat the average,按照这个论点,用先进的技术,更抽象的语言
: ,达到更高的效率和可读性,可维护性(指让跟你一派的程序员,不甘average的程序
: 员来维护),是对的。
: 大公司强调的却是人员的可替换性。从这个角度上讲,个人追求效率追求卓越反而不是
: 大公司喜欢的。换句话说,大公司喜欢be the average。
: 把时间倒退30年到80年代初,如果你在使用汇编的计算机公司里用unix和c,那么你就
: 是个怪物,和大家不合群,就算效率高,公司也不一定喜欢。
: 怎么办呢?

p*****2
发帖数: 21240
57
解释一下。我原文里说法有误,我其实想说的是以前用几句来完成的,现在想办法用一
句来完成。但是这一句不一定是在一行之内。
R****r
发帖数: 609
58
this is called field hiding.
You can access with supre.value and this.value.

【在 y*******g 的大作中提到】
: 不是啊
: java可以
: class A{
: protected Something value;
: }
: class B extends A{
: protected Something value; //不报错!连warning都没有
: }

f*******t
发帖数: 7549
59
这东西挺蛋疼的。我记得以前写用java reflection填充fields的时候,如果assign给
基类的fields,就会被hide掉,等于做无用功。。。

【在 R****r 的大作中提到】
: this is called field hiding.
: You can access with supre.value and this.value.

1 (共1页)
进入JobHunting版参与讨论
相关主题
Java大牛推荐一本讲JVM工作原理的入门书吧? (转载)各种大牛说说Scala在金融界的应用?
与 Java 相比,Ruby 有啥优势?学scala的
Clarifi面经Recruiter说面试Java命令行相关内容
没法再面试了有FB的哥们现身说法FB有多忙么
Leetcode能不能支持guava呢?微软有必要这么鄙视java吗
好像懂JAva的比懂C++的多啊面经一坨 (转载)
看了一下Scala文档 其实就是一个小号的Java toyapple phone 面经
准备转回Java了工作中用熟了一种语言想换怎么办?
相关话题的讨论汇总
话题: java话题: jvm话题: scala话题: sin话题: method