gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:47:23 27 4
gpt4 key购买 nike

我有一个应用程序与一个实体一起工作,这些实体都有一个整数 ___ID 主键(例如 StudentID、CourseID 等)

我想为程序添加一点类型安全性,例如,将 StudentID 作为输入的函数不会意外传递 CourseID。

我想到的第一个想法是创建像这样的简单空类:

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

这不起作用,因为 java.util.Integerfinal 并且无法扩展。

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

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);

关于java - 类型安全整数的设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24981278/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com