一个类使用的范例,为什么不最先调用构造函数

huabinsir 2014-11-10 06:15:41
public class TransportManager {
private static TransportManager sManager;
public static TransportManager init(Context context, String system,
Handler managerHandler) {

if (sManager == null) {
//走了这里
Log.v("AAA", ".............TransportManager.init...........");
sManager = new TransportManagerExt(context, system, managerHandler);
} else {
}
}

protected TransportManager(Context context, String sysetmModuleName, Handler mgrHandler){
mContext = context;
Log.v("AAA", ".............TransportManager.............");
}
}

怎么先运行这个,再运行构造函数:
public static TransportManager init(Context context, String system,
...全文
199 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dali_yan 2014-11-11
  • 打赏
  • 举报
回复
引用 3 楼 cclovescw 的回复:
[quote=引用 1 楼 bdmh 的回复:] static TransportManager这是静态构造,当你访问TransportManager时,先会执行静态构造,new的时候,才会执行非静态构造
+1[/quote]你还来个+1,看清题目,init方法是静态构造吗?
dali_yan 2014-11-11
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
static TransportManager这是静态构造,当你访问TransportManager时,先会执行静态构造,new的时候,才会执行非静态构造
你不是跟我开玩笑吧,你们是哪里看出init方法是静态构造了,我不明白你们在说什么?我孤陋寡闻了?
budworm 2014-11-11
  • 打赏
  • 举报
回复
static TransportManager这是静态构造,常驻内存,只要访问TransportManager,先会执行静态构造。new TransportManager 对象时,才会执行非静态构造函数。 取决于,你怎么调用...
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
static TransportManager这是静态构造,当你访问TransportManager时,先会执行静态构造,new的时候,才会执行非静态构造
+1
dali_yan 2014-11-11
  • 打赏
  • 举报
回复
引用 7 楼 zanfeng 的回复:
[quote=引用 6 楼 ITbailei 的回复:] [quote=引用 3 楼 cclovescw 的回复:] [quote=引用 1 楼 bdmh 的回复:] static TransportManager这是静态构造,当你访问TransportManager时,先会执行静态构造,new的时候,才会执行非静态构造
+1[/quote]你还来个+1,看清题目,init方法是静态构造吗?[/quote] +1。 不过楼主发贴好象把别人搞晕了。[/quote]一个人看错可以理解,连续三个人搞错就有问题了,我看到它们的回答还以为我智商被压制了,搞的我微微颤颤的去eclipse里面调了一下,结果还是我的正确,告诉我们一个道理:不要迷信权威,权威的眼睛不一定比菜鸟的眼睛好使。
足球中国 2014-11-11
  • 打赏
  • 举报
回复
引用 6 楼 ITbailei 的回复:
[quote=引用 3 楼 cclovescw 的回复:] [quote=引用 1 楼 bdmh 的回复:] static TransportManager这是静态构造,当你访问TransportManager时,先会执行静态构造,new的时候,才会执行非静态构造
+1[/quote]你还来个+1,看清题目,init方法是静态构造吗?[/quote] +1。 不过楼主发贴好象把别人搞晕了。
coffee-time 2014-11-10
  • 打赏
  • 举报
回复
静态内容属于类的成员而不是对象的成员,你new一个对象时肯定先需要类,所以类的各种成员会先加载
bdmh 2014-11-10
  • 打赏
  • 举报
回复
static TransportManager这是静态构造,当你访问TransportManager时,先会执行静态构造,new的时候,才会执行非静态构造

80,354

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧