📄 conditionalenumeration.java
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -