读zookeeper的Watcher接口:
public interface Watcher {
/**
* This interface defines the possible states an Event may represent
*/
public interface Event {
/**
* Enumeration of states the ZooKeeper may be at the event
*/
public enum KeeperState {
/** Unused, this state is never generated by the server */
@Deprecated
Unknown (-1),
/** The client is in the disconnected state - it is not connected
* to any server in the ensemble. */
Disconnected (0),
/** Unused, this state is never generated by the server */
@Deprecated
NoSyncConnected (1),
/** The client is in the connected state - it is connected
* to a server in the ensemble (one of the servers specified
* in the host connection parameter during ZooKeeper client
* creation). */
SyncConnected (3),
/**
* Auth failed state
*
*/
AuthFailed(4),
/** The serving cluster has expired this session. The ZooKeeper
* client connection (the session) is no longer valid. You must
* create a new client connection (instantiate a new ZooKeeper
* instance) if you with to access the ensemble. */
Expired (-112);
private final int intValue; // Integer representation of value
// for sending over wire
KeeperState(int intValue) {
this.intValue = intValue;
}
public int getIntValue() {
return intValue;
}
public static KeeperState fromInt(int intValue) {
switch(intValue) {
case -1: return KeeperState.Unknown;
case 0: return KeeperState.Disconnected;
case 1: return KeeperState.NoSyncConnected;
case 3: return KeeperState.SyncConnected;
case 4: return KeeperState.AuthFailed;
case -112: return KeeperState.Expired;
default:
throw new RuntimeException("Invalid integer value for conversion to KeeperState");
}
}
}
/**
* Enumeration of types of events that may occur on the ZooKeeper
*/
public enum EventType {
None (-1),
NodeCreated (1),
NodeDeleted (2),
NodeDataChanged (3),
NodeChildrenChanged (4);
private final int intValue; // Integer representation of value
// for sending over wire
EventType(int intValue) {
this.intValue = intValue;
}
public int getIntValue() {
return intValue;
}
public static EventType fromInt(int intValue) {
switch(intValue) {
case -1: return EventType.None;
case 1: return EventType.NodeCreated;
case 2: return EventType.NodeDeleted;
case 3: return EventType.NodeDataChanged;
case 4: return EventType.NodeChildrenChanged;
default:
throw new RuntimeException("Invalid integer value for conversion to EventType");
}
}
}
}
abstract public void process(WatchedEvent event);
}
分享到:
相关推荐
枚举类接口定义枚举类接口定义枚举类接口定义枚举类接口定义枚举类接口定义枚举类接口定义枚举类接口定义枚举类接口定义枚举类接口定义枚举类接口定义枚举类接口定义
在`Color`枚举中,`toString()`被重写为返回`index_name`格式的字符串,增强了信息的表示。 5. 实现接口: 虽然Java不支持多重继承,但枚举可以实现接口。`Behavior`接口展示了如何让枚举实现特定的行为,如`print...
在Java中,遍历枚举接口的元素通常有以下几种方式: 1. 使用for-each循环: 这是最常用的方法,它简洁且易于理解。例如,如果有一个名为`MyEnum`的枚举类型,我们可以这样遍历: ```java for (MyEnum e : MyEnum....
支付宝接口文档是开发者进行支付宝集成时的重要参考资料,它详尽地阐述了如何与支付宝系统进行交互,实现各类支付、退款、查询等业务功能。本文将深入解析这些知识点,帮助开发者更好地理解和使用支付宝接口。 1. *...
Java 枚举是 Java 语言中的一种特殊类型,自 JDK 5 开始引入,使用 enum 关键字修饰。在 Java 中,枚举是一种受限制的类,具有自己的方法。枚举的本质是 java.lang.Enum 的子类,它提供了一些基本方法,如 values()...
在Windows Presentation Foundation (WPF) 中,开发人员经常需要在用户界面中展示枚举值,以便用户能够选择。ComboBox控件通常被用作这样的选择器,因为它提供了下拉列表的功能,用户可以从中选取一个选项。本项目...
例如,一个订单状态可能有"待处理"、"已发货"等枚举值。为了避免字符串拼写错误导致的问题,可以定义一个`OrderStatus`枚举: ```java public enum OrderStatus { PENDING("待处理"), SHIPPED("已发货"); ...
在枚举中,我们可以定义方法,这些方法可以是抽象的,也可以包含具体实现。例如,我们可以定义一个返回枚举常量名称的方法: ```java public enum Color { RED, GREEN, BLUE; public String getName() { return...
在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时检查和操作类、接口、字段和方法等对象。枚举(Enumeration)是Java中的一个特殊类类型,用于定义一组常量。本项目"test-enum-demo-...
总的来说,Java中的枚举是一种强大的特性,提供了类型安全的常量集合,并结合`EnumSet`和`EnumMap`这两个工具类,可以在处理枚举数据时实现高效的编程。理解并善用这些概念,将有助于编写更加可靠和高效的Java代码。
在这个例子中,`Species` 枚举实现了 `Animal` 接口,每个枚举实例都有自己的声音。 总结来说,Java枚举提供了一种安全、可读的方式来处理一组预定义的常量。通过枚举,我们可以避免硬编码常量,减少错误,提高代码...
- **枚举元素的实例性质**:枚举中的每个元素实际上是一个对象实例,这意味着可以为这些元素添加额外的属性和行为。例如,为不同的季节分配特定的颜色或温度范围。 - **枚举类的可扩展性**:除了定义枚举元素外,...
- Java中的枚举定义非常简洁,可以直接在枚举中定义值: ```java public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY; } ``` - 与C++中的枚举不同,Java枚举默认是单例的,...
4. 使用枚举:在Mapper接口和XML映射文件中,可以直接使用枚举类型作为参数或返回值。例如: ```java public interface UserMapper { User selectUserByGender(Gender gender); } ``` ```xml SELECT * FROM ...
Java中的枚举(enum)类型是在JDK 1.5版本引入的一个强大的特性,它用于定义一组相关的常量。在C/C++等语言中,枚举通常用来表示一组具有固定值的常量集合,但在Java中,枚举不仅限于此,它提供了更多的功能和灵活性...
在开发自定义枚举器时,不仅要关注接口实现,还要考虑性能优化,比如选择合适的复制策略和内存管理方案。同时,确保在IDL文件中的代理/存根定义完整且无误,这对于COM组件的跨进程通信至关重要。 总之,ATL的可持续...
- **类型安全**: 枚举类型确保了只有预定义的常量值可以被赋值给枚举类型的变量,这有助于避免运行时错误。 - **自动实现接口**: 枚举类型自动实现了`Serializable`和`Comparable`接口。 - **方法**: 枚举类型可以有...
在这个主题中,我们将探讨如何通过接口封装和枚举参数来实现一系列的图片处理效果,如逆反处理、霓虹处理、浮雕处理、雾化处理、二值处理以及马赛克处理。以下是对这些知识点的详细说明: 1. **接口封装**:接口...
上述代码中,每个枚举常量都有一个对应的描述信息,并且提供了获取描述信息的方法。 ##### 实现接口 枚举也可以实现接口: ```java public interface Season { int SEASON_SPRING = 1; int SEASON_SUMMER = 2; ...
枚举在实际开发中有很多用途,如表示状态机的不同状态、定义常量、在switch语句中使用等。它们增强了代码的可读性和安全性,减少了硬编码的常量,使得程序更加规范。同时,枚举还支持枚举常量之间的自然排序,可以与...