コードを実行するたびに、コードから java.lang.NullPointerException: null というエラーが発生します。
コードは次のとおりです。
public class APRectangle
{
private APPoint myTopLeft;
private APPoint myTopRight;
private APPoint myBottomLeft;
private APPoint myBottomRight;
private double myWidth;
private double myHeight;
public APRectangle( APPoint topLeft, double width, double height )
{
myTopLeft = topLeft;
myWidth = width;
myHeight = height;
}
public APPoint getTopLeft()
{
return myTopLeft;
}
public void setTopLeft( APPoint TL )
{
myTopLeft = TL;
}
public double getWidth()
{
return myWidth;
}
public void setWidth( double W )
{
myWidth = W;
}
public double getHeight()
{
return myHeight;
}
public void setHeight( double H )
{
myHeight = H;
}
public APPoint getTopRight()
{
return new APPoint( myTopLeft.getX() + myWidth, myTopLeft.getY() );
}
public APPoint getBottomLeft()
{
return new APPoint( myTopLeft.getX(), myTopLeft.getY() - myHeight );
}
public APPoint getBottomRight()
{
return new APPoint( myTopRight.getX(), myTopRight.getY() - myHeight );
}
}
最後の方法は、私にエラーを与えている方法です。
これが私のメインクラスです:
public class MainClass
{
public MainClass()
{
}
public static String printAPPoint( APPoint p )
{
return "(" + p.getX() + "," + p.getY() + ")";
}
public static String printAPRectangle( APRectangle R)
{
return "[APRectangle " + printAPPoint(R.getTopLeft()) +
" " + R.getWidth() + "," + R.getHeight() + "]" ;
}
public static String printTopLeft( APRectangle R )
{
return "(Top Left is " + printAPPoint(R.getTopLeft()) + ")" ;
}
public static String printTopRight( APRectangle R )
{
return "(Top Right is " + printAPPoint(R.getTopRight()) + ")" ;
}
public static String printBottomLeft( APRectangle R )
{
return "(Bottom Left is " + printAPPoint(R.getBottomLeft()) + ")";
}
public static String printBottomRight( APRectangle R )
{
return "(Bottom Right is " + printAPPoint(R.getBottomRight()) + ")";
}
public static void main(String[] args)
{
APPoint p = new APPoint(1.0, 5.0 );
APRectangle R = new APRectangle( p, 5.0, 3.0);
System.out.println(printAPRectangle(R));
System.out.println(printTopLeft(R));
System.out.println(printTopRight(R));
System.out.println(printBottomLeft(R));
System.out.println(printBottomRight(R));
System.out.println( "Done!" );
}
}
最後の方法の前の 3 つの方法は完全にうまく機能しますが、最後の方法が機能しない理由はわかりません。誰か助けてくれませんか?
ありがとう、ローハン