package com.hedgee.sandbox; import java.util.regex.Pattern; public enum EnumLocalClassTest { FIND { @Override public Object createMatcher(final Pattern pattern) { class Finder { @Override public boolean equals(Object obj) { if (obj instanceof CharSequence) { return pattern.matcher((CharSequence) obj).find(); } if (obj instanceof Finder) { return pattern.equals(((Finder) obj).getPattern()); } return false; } @Override public int hashCode() {return pattern.hashCode();} private Pattern getPattern() {return pattern;} } return new Finder(); } }; public abstract Object createMatcher(Pattern pattern); public static void main(String... args) { FIND.createMatcher(Pattern.compile("Hello, world!")); } }