我确信这个问题已经在某个地方得到了解答,但我已经搜索了半个小时,我已经没有关键字了,因为我完全不知道如何做到这一点。
我有一个像这样的类的构造函数
public MyClass (String name)
{}
我想要的是定义字符串,以便只能输入这些字符串。
我认为它与静态最终字符串有关,但是有很多东西可以找到,我不知道如何缩小搜索范围。请告诉我我想做的事情叫什么名字,以便我可以搜索它。
编辑: 我想要的示例: 我想以某种方式定义一些字符串。 (或者做一些具有相同效果的其他事情,正如我所说的我不知道该怎么做)
字符串一 = "ExampleOne"; 字符串二 = "ExampleTwo";
这样当我调用构造函数时
MyClass myClass = new MyClass("somethingElse");
构造函数不会接受它。或者甚至更好的是, eclipse 已经向我展示了我有哪些选项,就像它的“颜色”一样。
最佳答案
是的,你有权利不能覆盖 String
类,因为它是 final
所以你可以简单地创建自己的 StringWrapper
类来包装字符串.
public class StringWrapper{
private String content;
public StringWrapper(String c){
content = c;
}
//all your methods and fields there, for example delegated methods
public String toString(){
return content.toString();
}
}
但是 Enum
也可以在您的情况下使用,然后您定义 Enum
值
public enum Color {
WHITE, BLACK, RED, YELLOW, BLUE; //; is required here.
@Override public String toString() {
//only capitalize the first letter
String s = super.toString();
return s.substring(0, 1) + s.substring(1).toLowerCase();
}
}
public myClass (Color color)
{}
关于Java字符串预定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23056662/