java.nio.charset
public abstract class Charset extends Object implements Comparable<Charset>
Modifier | Constructor and Description |
---|---|
protected |
Charset(String canonicalName,
String[] aliases) |
Modifier and Type | Method and Description |
---|---|
Set<String> |
aliases() |
static SortedMap<String,Charset> |
availableCharsets() |
boolean |
canEncode() |
int |
compareTo(Charset other)
Compares this object with another, and returns a numerical result based
on the comparison.
|
abstract boolean |
contains(Charset cs) |
CharBuffer |
decode(ByteBuffer bb) |
static Charset |
defaultCharset()
Returns the system default charset.
|
String |
displayName() |
String |
displayName(Locale locale) |
ByteBuffer |
encode(CharBuffer cb) |
ByteBuffer |
encode(String str) |
boolean |
equals(Object ob)
Determine whether this Object is semantically equal
to another Object.
|
static Charset |
forName(String charsetName)
Returns the Charset instance for the charset of the given name.
|
int |
hashCode()
Get a value that represents this Object, as uniquely as
possible within the confines of an int.
|
boolean |
isRegistered() |
static boolean |
isSupported(String charsetName) |
String |
name() |
abstract CharsetDecoder |
newDecoder() |
abstract CharsetEncoder |
newEncoder() |
String |
toString()
Convert this Object to a human-readable String.
|
public static Charset defaultCharset()
public static boolean isSupported(String charsetName)
public static Charset forName(String charsetName)
charsetName
- UnsupportedCharsetException
- if this VM does not support
the charset of the given name.IllegalCharsetNameException
- if the given charset name is
legal.IllegalArgumentException
- if charsetName
is null.public static SortedMap<String,Charset> availableCharsets()
public String displayName()
public String displayName(Locale locale)
public final boolean isRegistered()
public abstract CharsetDecoder newDecoder()
public abstract CharsetEncoder newEncoder()
public boolean canEncode()
public final ByteBuffer encode(CharBuffer cb)
public final ByteBuffer encode(String str)
public final CharBuffer decode(ByteBuffer bb)
public final int compareTo(Charset other)
Comparable
o1.compareTo(o2) <op> 0
, where op
is one of <, <=, =, !=, >, or >=.
You must make sure that the comparison is mutual, ie.
sgn(x.compareTo(y)) == -sgn(y.compareTo(x))
(where sgn() is
defined as -1, 0, or 1 based on the sign). This includes throwing an
exception in either direction if the two are not comparable; hence,
compareTo(null)
should always throw an Exception.
You should also ensure transitivity, in two forms:
x.compareTo(y) > 0 && y.compareTo(z) > 0
implies
x.compareTo(z) > 0
; and x.compareTo(y) == 0
implies x.compareTo(z) == y.compareTo(z)
.
compareTo
in interface Comparable<Charset>
other
- the object to be comparedpublic final int hashCode()
Object
There are some requirements on this method which
subclasses must follow:
a.equals(b)
is true, then
a.hashCode() == b.hashCode()
must be as well.
However, the reverse is not necessarily true, and two
objects may have the same hashcode without being equal.Notice that since hashCode
is used in
Hashtable
and other hashing classes,
a poor implementation will degrade the performance of hashing
(so don't blindly implement it as returning a constant!). Also,
if calculating the hash is time-consuming, a class may consider
caching the results.
The default implementation returns
System.identityHashCode(this)
hashCode
in class Object
Object.equals(Object)
,
System.identityHashCode(Object)
public final boolean equals(Object ob)
Object
There are some fairly strict requirements on this
method which subclasses must follow:
a.equals(b)
and
b.equals(c)
, then a.equals(c)
must be true as well.a.equals(b)
and
b.equals(a)
must have the same value.a.equals(a)
must
always be true.a.equals(null)
must be false.a.equals(b)
must imply
a.hashCode() == b.hashCode()
.
The reverse is not true; two objects that are not
equal may have the same hashcode, but that has
the potential to harm hashing performance.This is typically overridden to throw a ClassCastException
if the argument is not comparable to the class performing
the comparison, but that is not a requirement. It is legal
for a.equals(b)
to be true even though
a.getClass() != b.getClass()
. Also, it
is typical to never cause a NullPointerException
.
In general, the Collections API (java.util
) use the
equals
method rather than the ==
operator to compare objects. However, IdentityHashMap
is an exception to this rule, for its own good reasons.
The default implementation returns this == o
.
equals
in class Object
ob
- the Object to compare toObject.hashCode()
public final String toString()
Object
System.out.println()
and such.
It is typical, but not required, to ensure that this method
never completes abruptly with a RuntimeException
.
This method will be called when performing string
concatenation with this object. If the result is
null
, string concatenation will instead
use "null"
.
The default implementation returns
getClass().getName() + "@" +
Integer.toHexString(hashCode())
.
toString
in class Object
Object.getClass()
,
Object.hashCode()
,
Class.getName()
,
Integer.toHexString(int)