public final class SizeF extends Object
Width and height are finite values stored as a floating point representation.
Constructor and Description |
---|
SizeF(float width,
float height)
Create a new immutable SizeF instance.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj)
Check if this size is equal to another size.
|
float |
getHeight()
Get the height of the size (as an arbitrary unit).
|
float |
getWidth()
Get the width of the size (as an arbitrary unit).
|
int |
hashCode()
Returns a hash code value for the object.
|
static SizeF |
parseSizeF(String string)
Parses the specified string as a size value.
|
String |
toString()
Return the size represented as a string with the format
"WxH" |
public SizeF(float width, float height)
Both the width
and the height
must be a finite number.
In particular, NaN
and positive/negative infinity are illegal values.
width
- The width of the sizeheight
- The height of the sizeIllegalArgumentException
- if either width
or height
was not finite.public float getWidth()
public float getHeight()
public boolean equals(Object obj)
Two sizes are equal if and only if both their widths and heights are the same.
For this purpose, the width/height float values are considered to be the same if and only
if the method Float.floatToIntBits(float)
returns the identical int
value
when applied to each.
equals
in class Object
obj
- the reference object with which to compare.true
if the objects were equal, false
otherwiseObject.hashCode()
,
HashMap
public String toString()
"WxH"
public static SizeF parseSizeF(String string) throws NumberFormatException
The ASCII characters \
u002a
('*') and
\
u0078
('x') are recognized as separators between
the width and height.
For any SizeF s
: SizeF.parseSizeF(s.toString()).equals(s)
.
However, the method also handles sizes expressed in the
following forms:
"widthx
height" or
"width*
height" => new SizeF(width, height)
,
where width and height are string floats potentially
containing a sign, such as "-10.3", "+7" or "5.2", but not containing
an 'x'
(such as a float in hexadecimal string format).
SizeF.parseSizeF("3.2*+6").equals(new SizeF(3.2f, 6.0f)) == true
SizeF.parseSizeF("-3x-6").equals(new SizeF(-3.0f, -6.0f)) == true
SizeF.parseSizeF("4 by 3") => throws NumberFormatException
string
- the string representation of a size value.string
.NumberFormatException
- if string
cannot be parsed
as a size value.NullPointerException
- if string
was null
public int hashCode()
HashMap
.
The general contract of hashCode
is:
hashCode
method
must consistently return the same integer, provided no information
used in equals
comparisons on the object is modified.
This integer need not remain consistent from one execution of an
application to another execution of the same application.
equals(Object)
method, then calling the hashCode
method on each of
the two objects must produce the same integer result.
Object.equals(java.lang.Object)
method, then calling the hashCode
method on each of the
two objects must produce distinct integer results. However, the
programmer should be aware that producing distinct integer results
for unequal objects may improve the performance of hash tables.
As much as is reasonably practical, the hashCode method defined by
class Object
does return distinct integers for distinct
objects. (This is typically implemented by converting the internal
address of the object into an integer, but this implementation
technique is not required by the
JavaTM programming language.)
hashCode
in class Object
Object.equals(java.lang.Object)
,
System.identityHashCode(java.lang.Object)