一般来说,这样一种继承形式(增加某些方法的可见性是唯一的改变)是一种众所周知的实践吗?它可能有用的一些场景是什么(假设我们可以访问所有的代码)?
在LiveData-Android Developer文档中,您可以看到对于LiveData
,setValue()
和PostValue()
方法不是公共的。
然而,在MutableLiveData-Android Developer文档中,您可以看到,MutableLiveData
在内部扩展了LiveData
并且LiveData
的两个神奇方法在其中公开可用,它们是SetValue()
和PostValue()
。
setvalue()
:设置值并将该值分派给所有活动的观察者,必须从主线程调用。
PostValue()
:将任务发布到主线程以覆盖SetValue()
设置的值,必须从后台线程调用。
因此,livedata
是不可变的。MutableLiveData
是LiveData
,它是可变的和线程安全的。
null [编辑] 带有的模型视图
以及何时使用它,
在我的应用程序中,我在menuitemclicked中添加了Observable方法,但当我点击它两次时,它仍然起作用。单次按压。方法不工作,但按钮工作良好,任何建议或方法中的任何更改。 fetch()中断; }
问题内容: 我最近开始学习Java,发现每个Java类都必须在单独的文件中声明非常奇怪。我是C#程序员,C#并没有实施任何此类限制。 Java为什么要这样做?有设计上的考虑吗? 编辑(基于几个答案): 为什么在IDE时代Java现在不取消此限制?这不会破坏任何现有代码(或者会破坏吗?)。 问题答案: 根据Java语言规范,第三版: 这种限制意味着每个编译单元最多只能有一个这样的类型。 这种限制使J
问题内容: 在Python IDLE 3.5.0 Shell中工作。根据我对内置“过滤器”功能的了解,它会根据您传递给它的内容返回列表,元组或字符串。因此,为什么下面的第一个分配有效,而第二个却不起作用(“ 只是交互式Python提示) 问题答案: 看看python文档(从此处开始): 从这些 iterable 元素构造一个迭代器,为其 功能 返回true。 因此,为了获取列表,您必须使用列表类: