Java中调用不同包的类中的数组时,删除元素抛出空指针异常。
packageInfomation;publicclassData{publicString[]username=newString[20];publicString[]...
package Infomation;
public class Data {
public String[] username = new String[20];
public String[] password = new String[20];
public void userInfo(){
username[0] = "username";
password[0] = "password";
}
}
package Program;
import Infomation.Data;
public class SC_Control {
private void deleteUser() {
data.userInfo();
System.out.println("请输入需要删除的用户名:");
String s1 = s.next();
System.out.println(printArray(data.username, s1));
if (printArray(data.username, s1) != -1) {
data.username[printArray(data.username, s1)] = null;
data.password[printArray(data.username, s1)] = null;
System.out.println("删除成功");
} else {
System.out.println("删除失败");
}
}
public int printArray(String[] array, String value) {
data.userInfo();
for (int i = 0; i < array.length; i++) {
if (array[i] == value) {
return i;
}
}
return -1;
}
代码如上,无论如何都返回值-1。
此外在用Arrays.asList(data.username).contains(username)时可以正常获取数组内容。
另外这种删除方法可行吗?删除后将每个元素提前。 展开
public class Data {
public String[] username = new String[20];
public String[] password = new String[20];
public void userInfo(){
username[0] = "username";
password[0] = "password";
}
}
package Program;
import Infomation.Data;
public class SC_Control {
private void deleteUser() {
data.userInfo();
System.out.println("请输入需要删除的用户名:");
String s1 = s.next();
System.out.println(printArray(data.username, s1));
if (printArray(data.username, s1) != -1) {
data.username[printArray(data.username, s1)] = null;
data.password[printArray(data.username, s1)] = null;
System.out.println("删除成功");
} else {
System.out.println("删除失败");
}
}
public int printArray(String[] array, String value) {
data.userInfo();
for (int i = 0; i < array.length; i++) {
if (array[i] == value) {
return i;
}
}
return -1;
}
代码如上,无论如何都返回值-1。
此外在用Arrays.asList(data.username).contains(username)时可以正常获取数组内容。
另外这种删除方法可行吗?删除后将每个元素提前。 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询