编程语言
首页 > 编程语言> > java-类型安全整数的设计模式?

java-类型安全整数的设计模式?

作者:互联网

我有一个可以处理实体的应用程序,这些实体都具有整数___ID主键(例如StudentID,CourseID等)

我想在程序中添加一些类型安全性,例如,将输入StudentID作为输入的函数不会偶然传递CourseID.

我想到的第一个想法是创建简单的空类,如下所示:

public class StudentID extends java.util.Integer {}
public class CourseID extends java.util.Integer {}

这不起作用,因为java.util.Integer是最终的,无法扩展.

第二个想法是有一个仅包含整数的数据类:

public class StudentID {
    private final int id;
    public int get() { return id; }
}

虽然这将是很多样板代码.

第三个想法与第二个想法类似,但是通过使用一个定义get方法的基类和从中继承的空类来节省样板代码:

public abstract class AbstractID {
    private final int id;
    public int get() { return id; }
}

public class StudentID extends AbstractID{};
public class CourseID extends AbstractID{};

还有其他/更好的已知模式可以解决此问题吗?

解决方法:

ID< T>呢?如果您想将某些参数限制为一个函数,我认为您可以执行以下操作:

void foo (ID<? extends Student> param);

标签:type-safety,java,design-patterns
来源: https://codeday.me/bug/20191121/2051835.html