【发布时间】:2016-06-17 16:29:15
【问题描述】:
我查看了“什么是 NullPointerException 以及如何解决它?”,尽管这个问题及其答案根本没有帮助。我理解我的问题; “NameTest”程序试图在“Name”对象为空时引用它,但我不确定如何修改它来解决这个问题,因为我希望所有“Name”都可以访问 lastName、firstName 和 fullName方法。在“Name”程序中,我试图创建一个“Name”类,可以使用它创建一个空白名称对象,然后使用 setName() 方法分配一个 String/Stringbuffer 值(取决于哪个更好) .这是“名称”代码:
public class Name
{
private StringBuffer lastName;
private StringBuffer firstName;
private StringBuffer fullName;
public Name()
{
lastName.replace( 0, 0, "" );
firstName.replace( 0, 0, "" );
fullName.replace( 0, 0, "" );
}
public Name( String lN, String fiN )
{
lastName.replace( 0, lN.length() - 1, lN );
firstName.replace( 0, fiN.length() - 1, fiN );
fullName.replace( 0, (lastName.length() + firstName.length()) + 2, lastName + ", " + firstName);
}
public Name( String fuN )
{
String[] fuNTemp = fuN.split( ", " );
lastName.replace( 0, fuNTemp[0].length() - 1, fuNTemp[0] );
firstName.replace( 0, fuNTemp[1].length() - 1, fuNTemp[1] );
fullName.replace( 0, (lastName.length() + firstName.length()) + 2, lastName + ", " + firstName);
}
public void setName( String n )
{
String[] nTemp = n.split( ", " );
lastName.replace( 0, nTemp[0].length() - 1, nTemp[0] );
firstName.replace( 0, nTemp[1].length() - 1, nTemp[1] );
fullName.replace( 0, (lastName.length() + firstName.length()) + 2, lastName + ", " + firstName);
}
public void setName( String lN, String fiN )
{
lastName.equals( lN );
firstName.equals( fiN );
fullName.equals( lastName + ", " + firstName );
}
public StringBuffer getName()
{
return fullName;
}
}
这是程序“NameTest”,我创建它只是为了帮助找出“Name”:
public class NameTest
{
public static void main( String [] args )
{
Name test = new Name();
System.out.println( test.getName() );
System.out.println();
String Doe = new String( "Doe" );
String John = new String( "John" );
test.setName( Doe, John );
System.out.println( test.getName() );
}
}
这是来自“NameTest”的错误消息:
Exception in thread "main" java.lang.NullPointerException
at Name.<init>(Name.java:9)
at NameTest.main(NameTest.java:5)
【问题讨论】:
-
在使用之前初始化(分配有效对象)
lastName、firstName和fullName。 -
MikeCAT,能否说得更具体一点,好吗?如,我应该将它们初始化为什么?
标签: java class nullpointerexception stringbuffer