为什么两个北京 字符串会不相等?
package 反射.Method; public class Address { private int aId; private String name; private String address; private String phone; public Address(int aId, String name, String address, String phone) { super(); this.aId = aId; this.name = name; this.address = address; this.phone = phone; } public Address() { super(); } public int getaId() { return aId; } public void setaId(int aId) { this.aId = aId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } @Override public String toString() { return "Address [aId=" + aId + ", name=" + name + ", address=" + address + ", phone=" + phone + "]"; } public void display(){ System.out.println("这是一个地址"); } private void info(){ System.out.println("我是私有方法"); } private void equalsAddress(String address){ if(address.equals(this.address)) { System.out.println("相等"); }else { System.out.println("不相等"); } } } package 反射.Method; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class AddressTest { public static void demo1() throws Exception { Class<?> class1=Class.forName("反射.Method.Address"); Address adr=(Address)class1.newInstance(); Method method=class1.getMethod("display"); method.invoke(adr); } public static void demo2() throws Exception { Class<?> class1=Class.forName("反射.Method.Address"); Address adr=(Address)class1.newInstance(); Method method=class1.getDeclaredMethod("info"); method.setAccessible(true); method.invoke(adr); } public static void main(String[] args) throws Exception { demo1(); demo2(); Class<?> class1=Class.forName("反射.Method.Address"); Address adr=(Address)class1.newInstance(); Method method=class1.getDeclaredMethod("equalsAddress",String.class); method.setAccessible(true); Address add=new Address(); add.setAddress("北京"); method.invoke(adr,"北京"); } }
5
收起
正在回答
3回答
同学你好!
1.这里是adr对象中的address与"北京"比较,但是同学只是给add对象的address赋值了,并没有给adr对象中的address赋值,所以这里不相等呢
2.第二次同学给adr对象中的address赋值了,所以相等了
3.建议同学的包名不要使用中文呢,推荐使用英文~
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
3. Java 数据库开发与实战应用
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星