接口实现类的实例化对象 不可以强转成接口类型嘛?

2020-08-24 16:56:52 +08:00
 gzk329

1903 次点击
所在节点    Java
10 条回复
nikandaoleshenme
2020-08-24 17:02:57 +08:00
https://github.com/GZK0329/private_demos/blob/master/捕获 021.JPG

把图片放出来撒,私有的怎么看
gzk329
2020-08-24 17:12:43 +08:00
就比如一个接口 User 一个类 UserImpl 实现接口 User
public class UserImpl implements User{
private User user = new UserImpl();
}
这样就是会报错 栈溢出
java.lang.StackOverflowError

v 站我找不到编辑
yanshenxian
2020-08-24 17:24:20 +08:00
@gzk329 #2 为什么会有这种写法。。看标题还以为你说的是 java 的多态

成员变量初始化在构造函数之前,你这不就死循环了,
AlisaDestiny
2020-08-24 17:37:12 +08:00
@gzk329 你先看看类的初始化逻辑吧,你这是在套娃。
Oktfolio
2020-08-24 17:39:49 +08:00
套娃 + 1
Cbdy
2020-08-24 17:43:13 +08:00
你要是特别想这样写,可以这样

@lombok.Getter(lazy = true)
private final User user = new UserImpl();
jackmrzhou
2020-08-24 17:43:25 +08:00
楼主多半 golang 写多了
gzk329
2020-08-24 18:18:57 +08:00
@yanshenxian 好的 非常感谢
sagaxu
2020-08-24 18:21:44 +08:00
无限套娃
sutra
2020-08-24 18:25:18 +08:00
这和接口无关。把问题简化一下,就和上面的哥哥们说的一样,套娃:

https://gist.github.com/sutra/de68eeb9f152b5acb342ffab4c2e87d8

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/701005

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX