有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何解决对接口中静态方法的需求?

我有两门课:矩形和圆形

它们中的每一个都使用“import”和“export”方法实现接口“JSONSerializable”

为了区分这两个类,接口有第三个方法“getType”,根据类的不同,它只返回“矩形”或“圆形”

这很好用,我得到了一个JSON字符串,看起来像这样:

{
    type:rectangle,
    points:[{1,2},{2,2},{2,1},{1,1}]
}

当我再次读取字符串时,我需要根据类型决定调用哪个导入方法。我现在做的是:

public enum JSONType{
    Rectangle(Rectangle.getStaticType()),
    Circle(Circle.getStaticType());

    private final String type;

    JSONType(String type){
        this.type = type;
    }

    public String getType(){
        return type;
    }
}

这样,我就可以读取JSON字符串,并与枚举中的所有字符串类型进行比较。但是,我需要为每个子对象声明两个方法(getType()和static getStaticType()),它们都返回相同的字符串:

public static String getStaticType(){
    return "rectangle";
}

public String getType(){
    return Rectangle.getStaticType();
}

有什么办法吗?我想答案是否定的,但我以前从未遇到过这样的情况。我很乐意接受任何设计建议:)


共 (0) 个答案