构造函数中预定的可能值

eri*_*rik 1 java types javadoc

假设我有一个制作球的课程.在构造函数,它接受一个String指示种球,但我只希望它接受一定的值,如:"FOOTBALL","BASEBALL""SOCCERBALL",所以如果我通过我的课到另一个开发者和他们去在Eclipse中使用它,它会提示他们关于可接受的价值.我该怎么办?我不知道是否有一种我可以使用的通用技术或它可能被调用的内容,因此欢迎指向教程或示例的指针.

public class Ball {
    public Ball(String type){
        …
    }
}
Run Code Online (Sandbox Code Playgroud)

ass*_*ias 8

您可以使用枚举而不是字符串,如下所示.枚举非常强大,所以你可以为每种球类型添加一个弹跳方法,每种球类型都知道它们应该如何反弹(参见上面的链接以获取更多信息/示例).这也解决了限制价值的问题.如果您没有在枚举中创建MEATBALL类型,则没有人可以将肉球作为构造函数的类型传递.

public enum BallType {
     FOOTBALL,
     BASEBALL,
     SOCCERBALL;
}

public Ball(BallType type) {
}
Run Code Online (Sandbox Code Playgroud)