我正在使用扩展Button创建一个类的实例,并直接访问整数变量以获得更好的性能.我正在使用常量来轻松识别变量的当前设置.
我有常量声明Button类和Activity类中实例化它们.我发现了类似的问题,并且读取它只是为了保持常量而创建一个类是不好的做法.
在两个类中使用相同的常量声明的最佳方法是什么?
按钮类:
public class GridButton extends Button {
public int displayStatus;
// constants for mine display status
private static final int UNTOUCHED = 1;
private static final int UNCOVERED = 2;
private static final int FLAGGED = 3;
private static final int HIT = 4;
...
}
活动类:
public class PlayGameActivity extends Activity {
private GridButton[][] gridButtons;
// constants for mine display status
private static final int UNTOUCHED = 1;
private static final int UNCOVERED = 2;
private static final int FLAGGED = 3;
private static final int HIT = 4;
...
// e.g. accessing displayStatus value
if (gridButtons[currentRow][currentColumn].displayStatus == FLAGGED)
{
}
}
解决方法:
要共享内容,您可以在单独的类中创建常量并静态访问它
class Constants {
public static final int UNTOUCHED = 1;
}
然后在这两个课程中你可以去Constants.UNTOUCHED.
在这种情况下,我会避免使用魔术数字并用Enum替换它们.
enum displayStatus {
Untouched, Uncovered, Flagged, Hit
}
并使用displayStatus displayStatus替换所有int displayStatus.现在,您和其他读者清楚地了解了int所代表的内容.
理想情况下,您始终希望使用特定类型来限制可能值的范围.在您的示例中,只有数字1-4有效,但您的类型与int一样宽,因此可以是任何值(例如-1或23543).
祝好运!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。