<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- © 2018 and later: Unicode, Inc. and others. -->
<!-- License & terms of use: http://www.unicode.org/copyright.html#License -->
<title>ICU4J API Comparison: ICU4J 61.1 with ICU4J 62.1</title>
</head>
<body>
<h1>ICU4J API Comparison: ICU4J 61.1 with ICU4J 62.1</h1>

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

<h3>Package com.ibm.icu.number</h3>
<ul>
CurrencyRounder
<ul>
<li><span style='color:orange'>(draft)</span> public Rounder <i>withCurrency</i>(Currency)</li>
</ul>
FractionRounder
<ul>
<li><span style='color:orange'>(draft)</span> public Rounder <i>withMaxDigits</i>(int)</li>
<li><span style='color:orange'>(draft)</span> public Rounder <i>withMinDigits</i>(int)</li>
</ul>
Rounder
<ul>
<li><span style='color:orange'>(draft)</span> public static CurrencyRounder <i>currency</i>(Currency.CurrencyUsage)</li>
<li><span style='color:orange'>(draft)</span> public static Rounder <i>fixedDigits</i>(int)</li>
<li><span style='color:orange'>(draft)</span> public static FractionRounder <i>fixedFraction</i>(int)</li>
<li><span style='color:orange'>(draft)</span> public static Rounder <i>increment</i>(java.math.BigDecimal)</li>
<li><span style='color:orange'>(draft)</span> public static FractionRounder <i>integer</i>()</li>
<li><span style='color:orange'>(draft)</span> public static Rounder <i>maxDigits</i>(int)</li>
<li><span style='color:orange'>(draft)</span> public static FractionRounder <i>maxFraction</i>(int)</li>
<li><span style='color:orange'>(draft)</span> public static Rounder <i>minDigits</i>(int)</li>
<li><span style='color:orange'>(draft)</span> public static FractionRounder <i>minFraction</i>(int)</li>
<li><span style='color:orange'>(draft)</span> public static Rounder <i>minMaxDigits</i>(int, int)</li>
<li><span style='color:orange'>(draft)</span> public static FractionRounder <i>minMaxFraction</i>(int, int)</li>
<li><span style='color:orange'>(draft)</span> public static Rounder <i>unlimited</i>()</li>
<li><span style='color:orange'>(draft)</span> public Rounder <i>withMode</i>(java.math.RoundingMode)</li>
</ul>
</ul>


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

<h3>Package com.ibm.icu.number</h3>
<ul>
FormattedNumber
<ul>
<li><span style='color:gray'>(deprecated)</span> public java.text.AttributedCharacterIterator <i>getFieldIterator</i>()</li>
<li><span style='color:gray'>(deprecated)</span> public void <i>populateFieldPosition</i>(java.text.FieldPosition)</li>
</ul>
</ul>


<hr/>
<h2>Changed in ICU4J 62.1 (old, new)</h2>

<h3>Package com.ibm.icu.number</h3>
<ul>
<li>    <span style='color:orange'>(draft)</span> public abstract class <i>CurrencyRounder</i> extends com.ibm.icu.number.Rounder</br>
<span style='color:gray'>(deprecated)</span> public abstract class <i>CurrencyRounder</i> extends com.ibm.icu.number.CurrencyPrecision</li>
<li>    <span style='color:orange'>(draft)</span> public abstract class <i>FractionRounder</i> extends com.ibm.icu.number.Rounder</br>
<span style='color:gray'>(deprecated)</span> public abstract class <i>FractionRounder</i> extends com.ibm.icu.number.FractionPrecision</li>
NumberFormatterSettings
<ul>
<li>    <span style='color:orange'>(draft)</span> public T extends com.ibm.icu.number.NumberFormatterSettings&lt;?&gt; <i>rounding</i>(com.ibm.icu.number.Rounder)</br>
<span style='color:gray'>(deprecated)</span> public T extends com.ibm.icu.number.NumberFormatterSettings&lt;?&gt; <i>rounding</i>(com.ibm.icu.number.Precision)</li>
<li>    <span style='color:orange'>(draft)</span> public abstract class <i>Rounder</i> extends java.lang.Object implements java.lang.Cloneable</br>
<span style='color:gray'>(deprecated)</span> public abstract class <i>Rounder</i> extends com.ibm.icu.number.Precision</li>
</ul>
</ul>


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

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

<h3>Package com.ibm.icu.lang</h3>
<ul>
UCharacter.JoiningGroup
<ul>
<li><span style='color:green'>(stable)</span> public static final int HANIFI_ROHINGYA_KINNA_YA</li>
<li><span style='color:green'>(stable)</span> public static final int HANIFI_ROHINGYA_PA</li>
</ul>
UCharacter.UnicodeBlock
<ul>
<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock CHESS_SYMBOLS</li>
<li><span style='color:green'>(stable)</span> public static final int CHESS_SYMBOLS_ID</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock DOGRA</li>
<li><span style='color:green'>(stable)</span> public static final int DOGRA_ID</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock GEORGIAN_EXTENDED</li>
<li><span style='color:green'>(stable)</span> public static final int GEORGIAN_EXTENDED_ID</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock GUNJALA_GONDI</li>
<li><span style='color:green'>(stable)</span> public static final int GUNJALA_GONDI_ID</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock HANIFI_ROHINGYA</li>
<li><span style='color:green'>(stable)</span> public static final int HANIFI_ROHINGYA_ID</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock INDIC_SIYAQ_NUMBERS</li>
<li><span style='color:green'>(stable)</span> public static final int INDIC_SIYAQ_NUMBERS_ID</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock MAKASAR</li>
<li><span style='color:green'>(stable)</span> public static final int MAKASAR_ID</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock MAYAN_NUMERALS</li>
<li><span style='color:green'>(stable)</span> public static final int MAYAN_NUMERALS_ID</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock MEDEFAIDRIN</li>
<li><span style='color:green'>(stable)</span> public static final int MEDEFAIDRIN_ID</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock OLD_SOGDIAN</li>
<li><span style='color:green'>(stable)</span> public static final int OLD_SOGDIAN_ID</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.UnicodeBlock SOGDIAN</li>
<li><span style='color:green'>(stable)</span> public static final int SOGDIAN_ID</li>
</ul>
UCharacter.WordBreak
<ul>
<li><span style='color:green'>(stable)</span> public static final int WSEGSPACE</li>
</ul>
UProperty
<ul>
<li><span style='color:green'>(stable)</span> public static final int EXTENDED_PICTOGRAPHIC</li>
</ul>
UScript
<ul>
<li><span style='color:green'>(stable)</span> public static final int DOGRA</li>
<li><span style='color:green'>(stable)</span> public static final int GUNJALA_GONDI</li>
<li><span style='color:green'>(stable)</span> public static final int HANIFI_ROHINGYA</li>
<li><span style='color:green'>(stable)</span> public static final int MAKASAR</li>
<li><span style='color:green'>(stable)</span> public static final int MEDEFAIDRIN</li>
<li><span style='color:green'>(stable)</span> public static final int OLD_SOGDIAN</li>
<li><span style='color:green'>(stable)</span> public static final int SOGDIAN</li>
</ul>
</ul>

<h3>Package com.ibm.icu.number</h3>
<ul>
<li><span style='color:orange'>(draft)</span> public abstract class <i>CurrencyPrecision</i></li>
<li><span style='color:orange'>(draft)</span> public abstract class <i>FractionPrecision</i></li>
<li><span style='color:orange'>(draft)</span> public abstract class <i>Precision</i></li>
<li><span style='color:orange'>(draft)</span> public class <i>Scale</i></li>
<li><span style='color:orange'>(draft)</span> public class <i>SkeletonSyntaxException</i></li>
FormattedNumber
<ul>
<li><span style='color:orange'>(draft)</span> public boolean <i>nextFieldPosition</i>(java.text.FieldPosition)</li>
<li><span style='color:orange'>(draft)</span> public java.text.AttributedCharacterIterator <i>toCharacterIterator</i>()</li>
</ul>
LocalizedNumberFormatter
<ul>
<li><span style='color:orange'>(draft)</span> public java.text.Format <i>toFormat</i>()</li>
</ul>
NumberFormatter
<ul>
<li><span style='color:orange'>(draft)</span> public static UnlocalizedNumberFormatter <i>forSkeleton</i>(java.lang.String)</li>
</ul>
NumberFormatterSettings
<ul>
<li><span style='color:orange'>(draft)</span> public T extends NumberFormatterSettings&lt;?&gt; <i>precision</i>(Precision)</li>
<li><span style='color:orange'>(draft)</span> public T extends NumberFormatterSettings&lt;?&gt; <i>roundingMode</i>(java.math.RoundingMode)</li>
<li><span style='color:orange'>(draft)</span> public T extends NumberFormatterSettings&lt;?&gt; <i>scale</i>(Scale)</li>
<li><span style='color:orange'>(draft)</span> public java.lang.String <i>toSkeleton</i>()</li>
</ul>
</ul>

<h3>Package com.ibm.icu.text</h3>
<ul>
SpoofChecker
<ul>
<li><span style='color:orange'>(draft)</span> public static final int HIDDEN_OVERLAY</li>
</ul>
</ul>

<h3>Package com.ibm.icu.util</h3>
<ul>
VersionInfo
<ul>
<li><span style='color:green'>(stable)</span> public static final VersionInfo UNICODE_11_0</li>
</ul>
</ul>

<hr/>
<p><i><font size="-1">Contents generated by ReportAPI tool on Tue May 29 17:03:55 EDT 2018<br/>© 2018 and later: Unicode, Inc. and others. License & terms of use: <a href="http://www.unicode.org/copyright.html#License">http://www.unicode.org/copyright.html#License</a></font></i></p>
</body>
</html>
