2016 - 2024

感恩一路有你

java带参数的构造方法有几种 java中构造器和构造方法的区别?

浏览量:2898 时间:2023-07-07 14:40:04 作者:采采

构造函数是一种构造函数,它在创建对象时初始化成员变量。默认情况下,它是一个无参数构造函数。

构造函数是一种特殊的方法。主要用于对象创建时的初始化,也就是给对象成员变量赋一个初始值。在创建对象的语句中,它总是与

事件

例如,DateFormat的formatCurrentTime()方法如下,代码如下:

公共类日期格式{

public static final SIMPLE DATE FORMAT SIMPLE _ DATE _ FORMAT new SIMPLE DATE FORMAT(# 34 yymmdd hhmmssz # 34)

公共静态字符串formatCurrentTime() {

return SIMPLE_DATE_(新日期())

}

}

我现在期望判断formatCurrentTime方法返回的值是否是SIMPLE_DATE_FORMAT对象格式化的值(当然这段代码一定是第一眼看到的,所以不要 我不认为它 没什么意义,实际工作中确实有对无聊的东西的需求)。

为了满足这个要求,我只需要判断SIMPLE_DATE_(new Date())是否等于()方法调用的返回值。但是很明显,formatCurrnetTime方法内部调用SIMPLE_Date_ method时传入的参数直接增加了一个DATE对象,而我在外部显式调用SIMPLE_DATE_ method时再次创建的DATE对象肯定不是这个,所以我需要mock类的无参数构造函数来保证每次新建时返回的都是同一个对象。

测试代码如下:

实现

@RunWith()

@PrepareForTest()

公共类DateFormatTest {

@以前

公共void设置(){

()

}

@测试

public void testFormatCurrentTime()引发异常{

日期日期新日期()

PowerMockito.whenNew()。不带参数()。然后返回(日期)

(_DATE_(日期),())

}

}

与上面的代码一样,只需要模拟日期类的无参数构造函数:

解释一下像JDK这样的类的模拟操作过程,这里用到powermock。关于Powermock的配置,请参见文章mockito与Powermock工具的mock构造器合作。

步骤如下:

1.在测试类上使用注释@RunWith()。

2.注意@ prepareforest声明要处理的类:

3.调用mockStatic方法的Mockdate类(调用PowerMockito的mock Date类也可以。毕竟这里需要的只是mockStatic构造方法。我用了Mockstatic,因为我在wiki上看过它的介绍,地址在这里:)。

最后,根据这里的需要,设置Date 的无参数构造函数,模拟构造函数的api用法可以在文章Mockito与powermock工具模拟构造函数合作中找到。

参数 方法 构造函数

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。