<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ICU4J API Comparison: ICU4J 3.4.1 with ICU4J 3.4.2</title>
<!-- Copyright 2006, IBM, All Rights Reserved. -->
</head>
<body>
<h1>ICU4J API Comparison: ICU4J 3.4.1 with ICU4J 3.4.2</h1>

<hr/>
<h2>Removed from ICU4J 3.4.1</h2>

<h3>Package com.ibm.icu.util</h3>
<ul>
UResourceBundle
<ul>
<li>(draft)      protected static UResourceBundle <i>instantiateICUResource</i>(java.lang.String, java.lang.String, java.lang.ClassLoader)</li>
</ul>
</ul>


<hr/>
<h2>Deprecated or Obsoleted in ICU4J 3.4.2</h2>

<h3>Package com.ibm.icu.text</h3>
<ul>
NumberFormat
<ul>
<li>(deprecated) protected static java.lang.String <i>getPattern</i>(java.util.Locale, int)</li>
</ul>
</ul>


<hr/>
<h2>Changed in ICU4J 3.4.2 (old, new)</h2>
<p>(no API changed)</p>

<hr/>
<h2>Promoted to stable in ICU4J 3.4.2</h2>
<p>(no API promoted)</p>

<hr/>
<h2>Added in ICU4J 3.4.2</h2>

<h3>Package com.ibm.icu.text</h3>
<ul>
DecimalFormat
<ul>
<li>(draft)      public void <i>setRoundingIncrement</i>(BigDecimal)</li>
</ul>
</ul>

<h3>Package com.ibm.icu.util</h3>
<ul>
SimpleTimeZone
<ul>
<li>(draft)      public java.lang.Object <i>clone</i>()</li>
<li>(draft)      public boolean <i>equals</i>(java.lang.Object)</li>
<li>(draft)      public int <i>hashCode</i>()</li>
<li>(draft)      public java.lang.String <i>toString</i>()</li>
</ul>
TimeZone
<ul>
<li>(draft)      public boolean <i>equals</i>(java.lang.Object)</li>
<li>(draft)      public int <i>hashCode</i>()</li>
</ul>
</ul>

<hr/>
<p><i><font size="-1">Contents generated by ReportAPI tool on Fri Jan 13 12:21:37 PST 2006<br/>Copyright (C) 2006, International Business Machines Corporation, All Rights Reserved.</font></i></p>
</body>
</html>
