Cannot make a static reference to the non-static method

Cannot make a static reference to the non-static method

一个activitiy中:
public void onClick(View v) {

String con=message.getText().toString();
String num=number.getText().toString();
String con2=message.getText().toString();

if(!con.equals("")&&!num.equals(""))
{
ArrayList<String> list=new ArrayList<String>();
list=toNumber(num);

for(int i=0;i<list.size();i++)

{

con = con2.replace("[称谓]", User.getUserName());//这里出问题了

sendSMS(list.get(i), con);}
}

else
Toast.makeText(getBaseContext(), "请输入联系人和信息内容!", Toast.LENGTH_SHORT).show();
}
另一个:
public class User {
public String userName;
private boolean isChecked;

public User(String userName,boolean bool) {
super();

this.userName = userName;
this.isChecked=bool;
}
public String getUserName() {

return userName;
}
目的想调用联系人姓名来替换字符串[称谓]。 各位大神帮帮忙啊,在线等。
收起
Z_Frederic  |  浏览 18349 次   2014-03-16 22:14  |举报
2014-03-18 14:41 最佳答案
- -!User是一个类名,用类名只能调静态方法,你这个getUserName是非静态方法,所以要在对象上面调用,先要获取一个User类的对象 User user = new ("用户",false);(或者其他方式获取对象),然后再调用user.getUserName();或者你是有个全局变量user,把User中的U改成u就行了~

654751277 

采纳率:34% 擅长: JAVA相关 Html/Css JavaScript Windows 烦恼

其他回答

在Java语言中对静态方法有两点规定:在静态方法中不可以使用this关键字;在静态方法中不可以直接调用非静态方法。---摘自《Java从入门到精通》。
我遇到这种情况,把调用的那个方法加个static就可以了。
geeyu快乐    |  2016-02-29 21:22
评论 
0  5
con = con2.replace("[称谓]", User.getUserName())
把你这段代码中的User.getUserName()的第一个U变为小写的u试试!
wang7218169    |  2014-03-16 22:27

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值