public class testbean { public static void check (String param , String value) {//方法不可用
if((value==null)||((value.trim()).equals(""))) {
value="1";
}
if(param.equals("pnumber")) {
try {
int num = Integer.parseInt(value);
} catch (NumberFormatException nume) {
value="not number";
}
}
}
public static void main(String args[]) {
String pnumber="not null";
//if((pnumber==null)||((pnumber.trim()).equals("")))
// pnumber="i have changed";
check("pnumber",pnumber);
System.out.println("pnumber="+pnumber);
}
}编译通过,也能执行,就是不调用check方法(pnumber不会更改,输出为 pnumber = not null),方法名换过也不行,不用static修饰方法,再main中用实例名.check也不行,怎么回事?
但注释掉的两行则可以正确执行(pnumber = i have changed)。何解?
你在你的check里面添上一个
System.out.println("ENTER!");
你看看有没有调用
public class test
{
public static String check (String param , String value)
{//方法不可用
if((value==null)||((value.trim()).equals("")))
{
return "1";
}
if(param.equals("pnumber"))
{
try
{
int num = Integer.parseInt(value);
}
catch(NumberFormatException nume)
{
return "not number";
}
return value;
}
return value;
}
public static void main(String args[])
{
String pnumber="5";
//if((pnumber==null)||((pnumber.trim()).equals("")))
// pnumber="i have changed";
pnumber=check("pnumber",pnumber);
System.out.println("pnumber="+pnumber);
}
}
public class testbean { public static void check(String param, StringBuffer v) {
String value = v.toString();//方法不可用
if ((value == null) || ((value.trim()).equals(""))) {
v.delete(0, value.length()).append("1");
}
if (param.equals("pnumber")) {
try {
int num = Integer.parseInt(value);
} catch (NumberFormatException nume) {
v.delete(0, value.length()).append("not number");
}
System.out.println(v);
} } public static void main(String args[]) {
StringBuffer pnumber = new StringBuffer("not null");
//if((pnumber==null)||((pnumber.trim()).equals("")))
// pnumber="i have changed";
check("pnumber", pnumber);
System.out.println("pnumber=" + pnumber);
}
}
public class testbean { public static void check (String param , String value) {//•û–@•s‰Â—p
System.out.println("check*******8");
if((value==null)||((value.trim()).equals(""))) {
value="1";
}
if(param.equals("pnumber")) {
try {
System.out.println("value="+value);
int num = Integer.parseInt(value);
} catch (NumberFormatException nume) {
value="not number";
System.out.println("value2="+value);
}
}
}
public static void main(String args[]) {
String pnumber="not null";
//if((pnumber==null)||((pnumber.trim()).equals("")))
// pnumber="i have changed";
check("pnumber",pnumber);
System.out.println("pnumber="+pnumber);
}
}打印结果:
D:\Exercises>java testbean
check*******8
value=not null
value2=not number
pnumber=not null
不知道你想证明什么?
希望以后说明程序目的。
{
String a="aaa";
public static void change(String b)
{
b="bbb";
System.out.println(b);
}
public static String change2(String c)
{
return c;
}
public static void main(String args[])
{
String a="aaa";
System.out.println(a);
change(a);
System.out.println(a);
a+=change2(a);
System.out.println(a);
}
}
结果是:
aaa
bbb
aaa
aaaaaa
我也搞定了,确实是应该使用StringBuffer,妈妈的,狗屁String真烦人另外我还想问一下,classpath加载类的方式与顺序是怎样的?哪里有这方面的介绍?再次感谢各位,谢谢你们的帮忙。