【发布时间】:2011-11-11 12:54:27
【问题描述】:
我在 android 和 Java 中都面临着奇怪的 OOP 行为 (IMO)...
我有一个活动,在其中我实例化了一个CustomSimpleCursorAdapter 的对象,它是一个扩展SimpleCursorAdapter 的类。在我的自定义类中,我添加了一些成员变量。
当我创建该类的对象时,我希望能够访问新创建对象的成员变量。我的 OOP 经验告诉我,以下内容就足够了:
ListAdapter listAdapter = new TrainingsListCursorAdapter(...);
listAdapter.currentWidth = 100;
注意:currentWith 变量被声明为 public...
(Eclipse) 不想编译,所以我想也许自定义类中的公共设置器setCurrentWidth() 可以解决它。我声明了一个成员变量 private 和我的 setter 方法 public....
ListAdapter listAdapter = new TrainingsListCursorAdapter(...);
listAdapter.setCurrentWidth(100);
Eclipse 也不高兴...我知道这是一个很长的机会,但是当你面对奇怪的行为时,你也会开始表现得很奇怪 :)))
eclipse 侵入性地提供了更正,最终奏效了!是以下代码:
((TrainingsListCursorAdapter) listAdapter).setOrientationWidth(100);
有人可以解释一下这种语法和这种转换的需要吗?! ...以及有什么问题:
- 实例化一个对象
- 访问它的公共 setter/getter 或直接成员变量
【问题讨论】: