实例化问题

summer16md 2010-06-01 01:50:59
我要在MAIN里 调用 member 类的一个getName
不用 Member member = new Member(); 这样实例化
应该怎么实例化??


public class Member
{
private string i;

public meber(A类 a,B类 b,C类 c)
{

}

public void setName(string i)
{

}

public string getName
{

}
}
...全文
160 13 打赏 收藏 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ade子夜 2010-06-01
  • 打赏
  • 举报
回复
帮顶!!!
xu3352 2010-06-01
  • 打赏
  • 举报
回复
反射挺好的 有参数的,没参数的都可以的
龙四 2010-06-01
  • 打赏
  • 举报
回复
木有看见

import java.lang.reflect.Constructor;
import java.sql.Timestamp;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import com.sunyard.sunflow.client.SunflowClient;

class Member
{
private String i;

public Member(String a,String b,Integer c)
{

}

public void setName(String i)
{

}

public String getName()
{
return null;
}
}
public class Test {
public static void main(String[] args) throws Exception {
Class clazz = Member.class;
Constructor constructor = clazz.getConstructor(String.class,String.class,Integer.class);
constructor.newInstance("arg1","arg2",7);
}
}

[Quote=引用 9 楼 magicluo 的回复:]

引用 6 楼 ticmy 的回复:
Member member = (Member)Class.forName("Member").newInstance();


楼主代码中已经提供了无参的构造方法

你这个调用.newInstance() 是不会成功的...

这个只是在类有默认无参构造方法时候才可以
[/Quote]
shaoyongyang 2010-06-01
  • 打赏
  • 举报
回复
简单问题搞这么悲剧
magicluo 2010-06-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ticmy 的回复:]
Member member = (Member)Class.forName("Member").newInstance();
[/Quote]

楼主代码中已经提供了无参的构造方法

你这个调用.newInstance() 是不会成功的...

这个只是在类有默认无参构造方法时候才可以
magicluo 2010-06-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 luomf 的回复:]
方法太多了,
常见的又单例模式、工厂模式,
还有Spring注入
[/Quote]

工厂模式还是要new 的吧..

用反射试试


package com.reflect;

import java.lang.reflect.Constructor;

public class ReflectTest {

public static void main(String[] args) {
Class<Member> clazz = com.reflect.Member.class;
Constructor<Member> constructor = null;
Member member = null;
try {
constructor = clazz.getConstructor(String.class);
} catch (Exception e) {
e.printStackTrace();
}

if (constructor != null) {
try {
member = (Member) constructor.newInstance("hello");
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println(member.getName()); //~output: hello
}

}

class Member {
private String str;

public Member(String args) {
this.str = args;
}

public void setName(String args) {
this.str = args;
}

public String getName() {
return this.str;
}
}
cwjieNo1 2010-06-01
  • 打赏
  • 举报
回复

Member member = new Member();
member.getName()

new Member().getName()

效果一样,2种写法·

龙四 2010-06-01
  • 打赏
  • 举报
回复
Member member = (Member)Class.forName("Member").newInstance();
luomf 2010-06-01
  • 打赏
  • 举报
回复
方法太多了,
常见的又单例模式、工厂模式,
还有Spring注入
bayougeng 2010-06-01
  • 打赏
  • 举报
回复
反射

回复内容太短了!
  • 打赏
  • 举报
回复
#2正解
kent4j 2010-06-01
  • 打赏
  • 举报
回复
new Member().getName();
wd9053 2010-06-01
  • 打赏
  • 举报
回复
public class Member
{
//........

public static Member createMember(参数列表)
{
return new Member(参数列表);
}
}

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧