java中enum的tostring
时间: 2024-01-07 07:04:04 浏览: 26
在Java中,枚举类型(enum)默认会继承Enum类,该类提供了一个名为toString()的方法,用于返回枚举常量的名称。因此,如果要获取枚举常量的名称,只需调用该方法即可。
例如:
```
public enum Color {
RED, GREEN, BLUE;
}
Color color = Color.RED;
String name = color.toString(); // 返回 "RED"
```
需要注意的是,如果要自定义枚举常量的名称,可以通过在枚举常量后面添加括号,并在括号中指定名称来实现。此时,调用toString()方法会返回自定义名称。
例如:
```
public enum Color {
RED("红色"), GREEN("绿色"), BLUE("蓝色");
private String name;
private Color(String name) {
this.name = name;
}
public String toString() {
return this.name;
}
}
Color color = Color.RED;
String name = color.toString(); // 返回 "红色"
```
相关问题
java enum.parse,java – 使用Mockito模拟枚举?
可以使用Mockito来模拟枚举。在Java中,枚举类型是一种特殊的数据类型,因此可以像模拟其他数据类型一样模拟枚举。
以下是一个示例,演示如何使用Mockito模拟枚举:
```java
public enum MyEnum {
VALUE1, VALUE2, VALUE3;
}
@Test
public void testEnumMocking() {
MyEnum mockedEnum = mock(MyEnum.class);
when(mockedEnum.toString()).thenReturn("VALUE1");
assertEquals("VALUE1", mockedEnum.toString());
}
```
在这个示例中,我们创建了一个名为`MyEnum`的枚举类型,并使用Mockito框架来模拟它。我们使用`mock`方法创建了一个模拟对象,并使用`when`方法指定当调用`toString`方法时,返回字符串"VALUE1"。
最后,我们使用`assertEquals`方法断言模拟枚举的`toString`方法返回值是否为"VALUE1"。
需要注意的是,在模拟枚举类型时,我们只能模拟枚举中的方法,而不能模拟枚举常量。因此,我们无法使用Mockito来模拟枚举常量。
java如何映射mysql枚举_java中自定义枚举enum映射到mysql数据库字段处理器handler
在Java中定义了一个枚举类型后,可以使用JDBC将其映射到MySQL数据库中的一个字段。具体实现方法如下:
1. 定义一个枚举类型:
```java
public enum Gender {
MALE,
FEMALE,
OTHER
}
```
2. 在MySQL中定义一个枚举类型:
```sql
CREATE TYPE gender_enum AS ENUM ('MALE', 'FEMALE', 'OTHER');
```
3. 在Java中定义一个类型处理器,用于将枚举类型映射到MySQL中的枚举类型:
```java
public class GenderTypeHandler extends BaseTypeHandler<Gender> {
@Override
public void setNonNullParameter(PreparedStatement ps, int i, Gender parameter, JdbcType jdbcType) throws SQLException {
ps.setString(i, parameter.toString());
}
@Override
public Gender getNullableResult(ResultSet rs, String columnName) throws SQLException {
String value = rs.getString(columnName);
return value != null ? Gender.valueOf(value) : null;
}
@Override
public Gender getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
String value = rs.getString(columnIndex);
return value != null ? Gender.valueOf(value) : null;
}
@Override
public Gender getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
String value = cs.getString(columnIndex);
return value != null ? Gender.valueOf(value) : null;
}
}
```
4. 在MyBatis中配置类型处理器:
```xml
<typeHandlers>
<typeHandler handler="com.example.GenderTypeHandler" javaType="com.example.Gender"/>
</typeHandlers>
```
5. 在Mapper中使用枚举类型:
```xml
<resultMap id="userResultMap" type="com.example.User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="gender" column="gender" typeHandler="com.example.GenderTypeHandler"/>
</resultMap>
<select id="getUser" resultMap="userResultMap">
SELECT * FROM user WHERE id = #{id}
</select>
```
这样,就可以将Java中的枚举类型映射到MySQL中的一个枚举类型。