Java匿名クラスを使用したインタフェースの直接インスタンス化

990 ワード

newによってインタフェースの一時的な実装を直接作成できます.直接コード:
public class DataType {
public interface TypeConvention {
    float toFloat(Object value);
    String toString(Object value);
    int toInt(Object value);
    boolean match(String type);
}


public static final TypeConvention FLOAT = new TypeConvention() {

    @Override
    public String toString(Object value) {
        return null;
    }

    @Override
    public int toInt(Object value) {
        return 0;
    }

    @Override
    public float toFloat(Object value) {
        return 0;
    }

    @Override
    public boolean match(String type) {
        return "float".equals(type.trim().toLowerCase());
    }

};

public static void main(String[] args) {
    //process float data type
    if (DataType.FLOAT.match("float")) {
        //TODO
    }
}

}
コードではnew Type Convention(){..}がインタフェースのすべての方法を実現している.インタフェースTypeConventionは、インタフェースクラスを個別に作成したり、STRING、DECIMALなどの他のタイプの実装を追加したりすることができます.