首页   注册   登录
 amiwrong123 最近的时间轴更新

amiwrong123

V2EX 第 417414 号会员,加入于 2019-06-01 12:17:41 +08:00
今日活跃度排名 2691
这个味道,是BUG的味道!
amiwrong123 最近回复了
@wleexi
那我感觉应该这么写啊,既然继承了父类,父类是个内部类,那么我在 super 里把这个外部类引用传给你不就好了:
InheritInner(WithInner wi) {
super(wi);//父类需要外部类引用,那就传给它
}
@Cbdy
oracle 更新太快了吧,感觉大家都在用 8
@wleexi
要不刚好请教你个问题:在内部类章,继承内部类节中。有如下代码:
// innerclasses/InheritInner.java
// Inheriting an inner class
class WithInner {
class Inner {}
}
public class InheritInner extends WithInner.Inner {
//- InheritInner() {} // Won't compile
InheritInner(WithInner wi) {
wi.super();
}
public static void main(String[] args) {
WithInner wi = new WithInner();
InheritInner ii = new InheritInner(wi);
}
}
这种语法叫做:enclosingClassReference.super();
我很理解内部类对象因为需要一个外部类引用,所以构造器的参数是外部类引用。
super()的语言看起来是在调用父类的构造器,super 必须写在构造器第一行,这也是的。
但这里却是 wi.super(),看起来在外部类引用上调用 super(),这实在让人难以理解啊啊啊!
@wleexi
哈哈哈,挺巧。你还敲一遍呢,我只是从网上下载到源码,然后扔到 ide 里跑一跑试一试。
另外,我觉得里面的例子设计的不错,但看书就是例子太长还没有关键字高亮,看起来就很累==
@xaplux
嗯,争取多看了。现在知道的是,《 on java 8 》有一章叫函数式编程,这是 java8 的新特性吧。
@xaplux
我也想,可惜时间不够用啊。其实主要关心后面的,集合、泛型、并发编程,这几章的差异大不大
@iEverX
疑问 2 解决,就是因为 default 返回 null 的原因。真的反应慢。
@ywcjxf1515
关于访问权限我懂了,先是看类的访问权限,再是看类里各个方法的访问权限。两个都可以才可以访问到。
关于直接调用 show,直接原因应该就是因为我没有用引用去接产品类对象,所以可以直接调用。但总感觉没理解到位==
@iEverX
看到了这句 You may live without any import statement when you always specify the full qualified name of classes。
现在我的理解是:编译器知道 mFactory.Manufacture("XXX")的返回值类型是 other.Product,而且编译器不仅知道返回值类型,而且它还不用我告诉它这个类型(指在测试类中加入 import other.Product ),就算我加了 import other.Product,它也会对我说:“我不用你的,我自己知道!”(报警告,此 other.Product 从未被用过)
@iEverX
1.你说的这点,勉强我可以接受,但我还没在书中找到证实。。
2.应该不是 idea 反应慢吧,不然它这反射弧也太长了吧。。。
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2204 人在线   最高记录 5043   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.3 · 8ms · UTC 12:09 · PVG 20:09 · LAX 05:09 · JFK 08:09
♥ Do have faith in what you're doing.