long.java
来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 582 行 · 第 1/2 页
JAVA
582 行
*
* @param s the <code>String</code> containing the
* <code>long</code>.
* @param radix the radix to be used.
* @return a newly constructed <code>Long</code> initialized to the
* value represented by the string argument in the specified
* radix.
* @exception NumberFormatException If the <code>String</code> does not
* contain a parsable <code>long</code>.
* @since JDK1.0
*/
public static Long valueOf(String s, int radix) throws NumberFormatException {
return new Long(parseLong(s, radix));
}
/**
* Returns a new long object initialized to the value of the
* specified String. Throws an exception if the String cannot be
* parsed as a long. The radix is assumed to be 10.
*
* @param s the string to be parsed.
* @return a newly constructed <code>Long</code> initialized to the
* value represented by the string argument.
* @exception NumberFormatException If the <code>String</code> does not
* contain a parsable <code>long</code>.
* @since JDK1.0
*/
public static Long valueOf(String s) throws NumberFormatException
{
return new Long(parseLong(s, 10));
}
/**
* The value of the Long.
*/
private long value;
/**
* Constructs a newly allocated <code>Long</code> object that
* represents the primitive <code>long</code> argument.
*
* @param value the value to be represented by the <code>Long</code>.
* @since JDK1.0
*/
public Long(long value) {
this.value = value;
}
/**
* Constructs a newly allocated <code>Long</code> object that
* represents the value represented by the string. The string is
* converted to an <code>long</code> value as if by the
* <code>valueOf</code> method.
*
* @param s the string to be converted to a <code>Long</code>.
* @exception NumberFormatException if the <code>String</code> does not
* contain a parsable long integer.
* @see java.lang.Long#valueOf(java.lang.String)
* @since JDK1.0
*/
public Long(String s) throws NumberFormatException {
this.value = parseLong(s, 10);
}
/**
* Returns the value of this Long as a byte.
*
* @since JDK1.1
*/
public byte byteValue() {
return (byte)value;
}
/**
* Returns the value of this Long as a short.
*
* @since JDK1.1
*/
public short shortValue() {
return (short)value;
}
/**
* Returns the value of this Long as an int.
*
* @return the <code>long</code> value represented by this object is
* converted to type <code>int</code> and the result of the
* conversion is returned.
* @since JDK1.0
*/
public int intValue() {
return (int)value;
}
/**
* Returns the value of this Long as a long.
*
* @return the <code>long</code> value represented by this object.
* @since JDK1.0
*/
public long longValue() {
return (long)value;
}
/**
* Returns the value of this Long as a float.
*
* @return the <code>long</code> value represented by this object is
* converted to type <code>float</code> and the result of
* the conversion is returned.
* @since JDK1.0
*/
public float floatValue() {
return (float)value;
}
/**
* Returns the value of this Long as a double.
*
* @return the <code>long</code> value represented by this object that
* is converted to type <code>double</code> and the result of
* the conversion is returned.
* @since JDK1.0
*/
public double doubleValue() {
return (double)value;
}
/**
* Returns a String object representing this Long's value.
*
* @return a string representation of this object in base 10.
* @since JDK1.0
*/
public String toString() {
return String.valueOf(value);
}
/**
* Computes a hashcode for this Long.
*
* @return a hash code value for this object.
* @since JDK1.0
*/
public int hashCode() {
return (int)(value ^ (value >> 32));
}
/**
* Compares this object against the specified object.
* The result is <code>true</code> if and only if the argument is
* not <code>null</code> and is a <code>Long</code> object that
* contains the same <code>long</code> value as this object.
*
* @param obj the object to compare with.
* @return <code>true</code> if the objects are the same;
* <code>false</code> otherwise.
* @since JDK1.0
*/
public boolean equals(Object obj) {
if ((obj != null) && (obj instanceof Long)) {
return value == ((Long)obj).longValue();
}
return false;
}
/**
* Determines the <code>long</code> value of the system property
* with the specified name.
* <p>
* The first argument is treated as the name of a system property.
* System properties are accessible through <code>getProperty</code>
* and , a method defined by the <code>System</code> class. The
* string value of this property is then interpreted as a long value
* and a <code>Long</code> object representing this value is returned.
* Details of possible numeric formats can be found with the
* definition of <code>getProperty</code>.
* <p>
* If there is no property with the specified name, or if the
* property does not have the correct numeric format, then
* <code>null</code> is returned.
*
* @param nm property name.
* @return the <code>Long</code> value of the property.
* @see java.lang.System#getProperty(java.lang.String)
* @see java.lang.System#getProperty(java.lang.String, java.lang.String)
* @since JDK1.0
*/
public static Long getLong(String nm) {
SecurityManager sm = System.getSecurityManager();
if (sm != null)
sm.checkPropertyAccess(nm);
return getLong(nm, null);
}
/**
* Determines the <code>long</code> value of the system property
* with the specified name.
* <p>
* The first argument is treated as the name of a system property.
* System properties are accessible through <code>getProperty</code>
* and , a method defined by the <code>System</code> class. The
* string value of this property is then interpreted as a long value
* and a <code>Long</code> object representing this value is returned.
* Details of possible numeric formats can be found with the
* definition of <code>getProperty</code>.
* <p>
* If there is no property with the specified name, or if the
* property does not have the correct numeric format, then a
* <code>Long</code> object that represents the value of the second
* argument is returned.
*
* @param nm property name.
* @param val default value.
* @return the <code>Long</code> value of the property.
* @see java.lang.System#getProperty(java.lang.String)
* @see java.lang.System#getProperty(java.lang.String, java.lang.String)
* @since JDK1.0
*/
public static Long getLong(String nm, long val) {
SecurityManager sm = System.getSecurityManager();
if (sm != null)
sm.checkPropertyAccess(nm);
Long result = Long.getLong(nm, null);
return (result == null) ? new Long(val) : result;
}
/**
* Determines the <code>long</code> value of the system property
* with the specified name.
* <p>
* The first argument is treated as the name of a system property.
* System properties are accessible through <code>getProperty</code>
* and , a method defined by the <code>System</code> class. The
* string value of this property is then interpreted as a long value
* and a <code>Long</code> object representing this value is returned.
* <p>
* If the property value begins with "<code>0x</code>" or
* "<code>#</code>", not followed by a minus sign, the rest
* of it is parsed as a hexadecimal integer exactly as for the method
* <code>Long.valueOf</code> with radix 16.
* <p>
* If the property value begins with "<code>0</code>",
* then it is parsed as an octal integer exactly as for the method
* <code>Long.valueOf</code> with radix 8.
* <p>
* Otherwise the property value is parsed as a decimal integer
* exactly as for the method <code>Long.valueOf</code> with radix 10.
* <p>
* Note that, in every case, neither <code>L</code> nor
* <code>l</code> is permitted to appear at the end of the string.
* <p>
* The second argument is the default value. If there is no property
* of the specified name, or if the property does not have the
* correct numeric format, then the second argument is returned.
*
* @param nm the property name.
* @param val the default <code>Long</code> value.
* @return the <code>long</code> value of the property.
* @see java.lang.Long#valueOf(java.lang.String, int)
* @see java.lang.System#getProperty(java.lang.String)
* @see java.lang.System#getProperty(java.lang.String, java.lang.String)
* @since JDK1.0
*/
public static Long getLong(String nm, Long val) {
SecurityManager sm = System.getSecurityManager();
if (sm != null)
sm.checkPropertyAccess(nm);
String v = System.getProperty(nm);
if (v != null) {
try {
if (v.startsWith("0x")) {
return Long.valueOf(v.substring(2), 16);
}
if (v.startsWith("#")) {
return Long.valueOf(v.substring(1), 16);
}
if (v.startsWith("0") && v.length() > 1) {
return Long.valueOf(v.substring(1), 8);
}
return Long.valueOf(v);
} catch (NumberFormatException e) {
}
}
return val;
}
/** use serialVersionUID from JDK 1.0.2 for interoperability */
private static final long serialVersionUID = 4290774380558885855L;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?