最近有一次采访中我问了一个问题。
问题 :有一个用于描述代码执行时间的类。该类就像:
Class StopWatch {
long startTime;
long stopTime;
void start() {// set startTime}
void stop() { // set stopTime}
long getTime() {// return difference}
}
期望客户端创建StopWatch的实例并相应地调用方法。用户代码可能会使方法的使用混乱,从而导致意外结果。Ex,start(),stop()和getTime()调用应该有序。
此类必须“重新配置”,以便可以防止用户弄乱序列。
我建议如果在start()之前调用stop()或进行一些if / else检查,但是访问者不满意,则使用自定义异常。
是否有一种设计模式可以处理这种情况?
编辑 :可以修改类成员和方法的实现。
我们通常使用来自Apache Commons
StopWatch的StopWatch来
检查模式的提供方式。
当秒表状态错误时,将抛出IllegalStateException。
public void stop()
Stop the stopwatch.
This method ends a new timing session, allowing the time to be retrieved.
Throws:
IllegalStateException - if the StopWatch is not running.
直截了当。
问题内容: 下面的代码在运行时显然会打印出“ B1 / A2 / B2”。现在,是否可以改为打印“ A1 / A2 / B2”(即A#method2()应该在A而不是B上调用method1())? 注意:我不需要获得传递多态性,这个问题仅出于好奇。 问题答案: 是的,您可以做到。在包 a中 定义A : 在包 b中 定义B : 将测试放入软件包 a中 并运行它。结果是A1 / A2 / B2。当然这
我创建了一个类,该类旨在获取2个分数,每个分数都有一个分子和分母,然后将它们相加,输出另一个分数。 当我编译程序时,我遇到了一个问题,涉及: 分数F3=新分数。添加(F1、F2);在主要方法中 错误:找不到类型分数$add 如果我将所有内容都设置为一个类,那么程序将运行,但我希望所有方法都严格位于Fraction类中,并在UseFraction类中调用Fraction。
这是一个相当初级的问题,但我对此有点犹豫不决。假设我有一个类a,它有方法method1、method2、method3、method4和一个main方法。 method2仅由Method1调用;method4仅由Method3调用。 解决方案说从main调用method1,从main调用method2,与method3和4相同。 所以让main方法显式调用method1和method2不是很糟糕吗
问题内容: 我正在尝试将一些简单的图形绘制到框架上。我还希望能够从主要方法中调整要绘制的内容。例如,设置要打印的String变量或矩形的坐标。 我似乎遇到的问题是,可以在设置类变量之前调用该方法。如何在绘制到屏幕之前更改此代码以设置/ 变量? 谢谢 问题答案: 从FrameTest类中删除test_string。使用set方法直接设置test_string。参见示例:
问题内容: 我尝试在Android NDK上工作,我的第一个测试不是很确定,我需要帮助,因为我看不到错误在哪里。 以下代码可以毫无问题地进行编译,但是当在模拟器上运行时,该程序将返回SIGSEGV信号,并且在logcat中不会显式写入任何错误。但是,将显示一条警告,指出未找到Java类。经过一天的研究,这个问题看起来一切正确。 这是我的Java代码:JNITestActivity.java 这是我
问题内容: 我有这种方法: 例如,如果value = 1且scale = 2,则输出为“结果:0.00”。我以为会是1.00E-5。因此,我的疑问是:如果BigDecimal的大小大于某个值(在我的示例中为2),我该如何强制将BigDecimal格式化为科学计数形式? 问题答案: 您可以将搭配使用: