conditionalenumeration.java
来自「java 的源代码」· Java 代码 · 共 73 行
JAVA
73 行
package com.reddragon2046.base.utilities.data.util;
import com.reddragon2046.base.utilities.data.UnaryPredicate;
import java.io.Serializable;
import java.util.Enumeration;
import java.util.NoSuchElementException;
public class ConditionalEnumeration
implements Enumeration, Serializable
{
public ConditionalEnumeration(Enumeration enumVal)
{
object = null;
loaded = false;
hasMore = false;
this.enumVal = enumVal;
}
public ConditionalEnumeration(Enumeration enumVal, UnaryPredicate condition)
{
object = null;
loaded = false;
hasMore = false;
this.enumVal = enumVal;
this.condition = condition;
}
public boolean hasMoreElements()
{
if(!loaded)
{
hasMore = true;
try
{
nextElement();
}
catch(Exception exception)
{
hasMore = false;
}
loaded = true;
}
return hasMore;
}
public Object nextElement()
throws NoSuchElementException
{
if(loaded && hasMore)
loaded = false;
else
do
object = enumVal.nextElement();
while(!condition.execute(object));
return object;
}
Enumeration enumVal;
UnaryPredicate condition = new UnaryPredicate() {
public boolean execute(Object object)
{
return true;
}
};
Object object;
boolean loaded;
boolean hasMore;
static final long serialVersionUID = 0x6509f9c1a03c41a9L;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?