可能是标题会误导您。
String str ="abcd";
在上面的代码中,String是一个类,不使用new,我们可以创建一个带有值的对象。现在我有一个Number.java类,我必须在其中分配一些数字,如下所示。
Number no = 23;
如何创建这样的类。
答案 0 :(得分:1)
我通常会说你应该使用运算符重载。但Java中不存在此功能。
答案 1 :(得分:0)
你不能。
Java编译器只是为您提供语法快捷方式。
[...]字符串文字[是]代码中的一系列字符 用双引号括起来。每当遇到字符串文字时 在您的代码中,编译器创建一个String对象,其值为
答案 2 :(得分:0)
您无法像字符串一样直接将值分配给Object。
如果你真的想要达到同样的目的,我建议你创建一个预先定义的初始化对象的Factory,并使用Prototype
模式或FactoryMethod
模式从Factory获取所需的对象。
示例代码:
import java.util.concurrent.atomic.*;
public class PrototypeFactory
{
public class NumberPrototype
{
public static final String THIRTY_TWO = "32";
public static final String FORTY_ONE = "41";
}
private static java.util.Map<String , AtomicInteger> prototypes = new java.util.HashMap<String , AtomicInteger>();
static
{
prototypes.put(NumberPrototype.THIRTY_TWO, new AtomicInteger(32));
prototypes.put(NumberPrototype.FORTY_ONE, new AtomicInteger(43));
}
public static AtomicInteger getInstance( final String s) {
//return (AtomicInteger)(prototypes.get(s)).clone();
return ((AtomicInteger)prototypes.get(s));
}
public static void main(String args[]){
System.out.println("Prototype.get(32):"+PrototypeFactory.getInstance(NumberPrototype.THIRTY_TWO));
}
}
输出:
Prototype.get(32):32
答案 3 :(得分:0)
实际上,由于自动装箱
,这种类型的赋值适用于原始包装类Integer n = 23;
答案 4 :(得分:0)
你不能因为原始值是java语言的一部分,如果你想让一个类被初始化&#34;就像你应该将它添加到java解析或类似的东西。