请问:
不用new关键字生成一个类的实例,用一个方法来生成?
不用new关键字生成一个类的实例,用一个方法来生成?
解决方案 »
- java.lang.OutOfMemoryError: Java heap space在线等
- 父类引用指向子类对象 有什么作用和好处 向前辈请教
- 为什么我输入是A,输出是65??(20分钟后结贴)
- 如何扩大程序的执行范围?
- 运行在不同jre下的class如何进行方法调用
- JTable 合计行界面设计
- java如何读取串口的16进制数据呀??
- 请教有关JPanel上增加背景图片的问题?
- 我把administrator改名后重新登陆win2000, 结果jb6启动时告我license格式不对?
- 急用!!应该不难,但好像没人真的知道。
- 在线等,高手请进。。。。。
- 5 张表的查询怎么做查询?急 。。。。
{
public static void main(String[] args)
{
Class c = Class.forName("Big");
Big b = (Big)c.newInstance();
b.output();
}
}
Class Big
{
void output()
{
System.out.println("this is big....");
}
}
Big b = (Big)c.newInstance();
(2) Big.class.newInstance();
(3) b.getClass().newInstance();
是的!我上面写的而且还要求一定是不带参数的构造函数。
如果你希望用带参数的构造函数,那还麻烦些,得用reflect有一种对象的创建不用构造方法:那就是从ObjectInputStream读入对象。这些对象会在内存中创建而无需构造方法。
当然是要new了, 否则如何分配内存?
----------------
对呀,
《Effective Java》第二章开头部分。
得到一个String类的对象 有3种方法
一.
String s1="123";
Class c1=s1.getClass();
二.
Class c2=String.class;
三.
String className="java.lang.String";
Class c3=Class.forName(className);我觉得不应该是静态工厂模式 这个模式归根揭底还是使用了new关键字
比如Singleton 随便写个老公类
public class TestSingleton{
public static void main(String[] args){
LaoGong lg1 = LaoGong.newInstance();
LaoGong lg2 = LaoGong.newInstance();
//LaoGong lg3 = new LaoGong();//ERROR
System.out.println(lg1==lg2);//True
}
}class LaoGong{
private LaoGong(){}
static LaoGong lg = new LaoGong();//此处使用new关键字
public static LaoGong newInstance(){
return lg;
}
}
private A(){
}
public A getA(){
A a=null;
…………
…………
return A;
}
}