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

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

<h3>Package com.ibm.icu.message2</h3>
<ul>
MFDataModel.FunctionAnnotation
<ul>
<li><span style='color:orange'>(draft)</span> public final java.lang.String name</li>
<li><span style='color:orange'>(draft)</span> public final java.util.Map&lt;java.lang.String, MFDataModel.Option&gt; options</li>
</ul>
MFDataModel.FunctionExpression
<ul>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.FunctionAnnotation annotation</li>
</ul>
MFDataModel.LiteralExpression
<ul>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.Annotation annotation</li>
</ul>
MFDataModel.VariableExpression
<ul>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.Annotation annotation</li>
</ul>
</ul>


<hr/>
<h2>Deprecated or Obsoleted in ICU4J 77</h2>
<p>(no API obsoleted)</p>

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

<hr/>
<h2>Promoted to stable in ICU4J 77</h2>

<h3>Package com.ibm.icu.lang</h3>
<ul>
<li><span style='color:green'>(stable)</span> public static enum <i>UCharacter.IdentifierStatus</i></li>
<li><span style='color:green'>(stable)</span> public static enum <i>UCharacter.IdentifierType</i></li>
UCharacter
<ul>
<li><span style='color:green'>(stable)</span> public static final int <i>getIdentifierTypes</i>(int, java.util.EnumSet&lt;UCharacter.IdentifierType&gt;)</li>
<li><span style='color:green'>(stable)</span> public static final boolean <i>hasIdentifierType</i>(int, UCharacter.IdentifierType)</li>
</ul>
UCharacter.IdentifierStatus
<ul>
<li><span style='color:green'>(stable)</span> public static final UCharacter.IdentifierStatus ALLOWED</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.IdentifierStatus RESTRICTED</li>
</ul>
UCharacter.IdentifierType
<ul>
<li><span style='color:green'>(stable)</span> public static final UCharacter.IdentifierType DEFAULT_IGNORABLE</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.IdentifierType DEPRECATED</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.IdentifierType EXCLUSION</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.IdentifierType INCLUSION</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.IdentifierType LIMITED_USE</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.IdentifierType NOT_CHARACTER</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.IdentifierType NOT_NFKC</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.IdentifierType NOT_XID</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.IdentifierType OBSOLETE</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.IdentifierType RECOMMENDED</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.IdentifierType TECHNICAL</li>
<li><span style='color:green'>(stable)</span> public static final UCharacter.IdentifierType UNCOMMON_USE</li>
</ul>
</ul>

<h3>Package com.ibm.icu.util</h3>
<ul>
MeasureUnit.MeasurePrefix
<ul>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit.MeasurePrefix QUECTO</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit.MeasurePrefix QUETTA</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit.MeasurePrefix RONNA</li>
<li><span style='color:green'>(stable)</span> public static final MeasureUnit.MeasurePrefix RONTO</li>
</ul>
</ul>


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

<h3>Package com.ibm.icu.message2</h3>
<ul>
MFDataModel.CatchallKey
<ul>
<li><span style='color:orange'>(draft)</span> public static boolean <i>isCatchAll</i>(java.lang.String)</li>
</ul>
MFDataModel.Function
<ul>
<li><span style='color:orange'>(draft)</span> public final java.lang.String name</li>
<li><span style='color:orange'>(draft)</span> public final java.util.Map&lt;java.lang.String, MFDataModel.Option&gt; options</li>
</ul>
MFDataModel.FunctionExpression
<ul>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.Function function</li>
</ul>
MFDataModel.LiteralExpression
<ul>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.Function function</li>
</ul>
MFDataModel.VariableExpression
<ul>
<li><span style='color:orange'>(draft)</span> public final MFDataModel.Function function</li>
</ul>
</ul>

<h3>Package com.ibm.icu.util</h3>
<ul>
ChineseCalendar
<ul>
<li><span style='color:orange'>(draft)</span> public int <i>getActualMaximum</i>(int)</li>
</ul>
MeasureUnit
<ul>
<li><span style='color:orange'>(draft)</span> public static final MeasureUnit PORTION_PER_1E9</li>
<li><span style='color:orange'>(draft)</span> public long <i>getConstantDenominator</i>()</li>
<li><span style='color:orange'>(draft)</span> public MeasureUnit <i>withConstantDenominator</i>(long)</li>
</ul>
</ul>

<hr/>
<p><i><font size="-1">Contents generated by ReportAPI tool on Wed Feb 19 16:09:11 PST 2025<br/>© 2025 and later: Unicode, Inc. and others. License & terms of use: <a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a></font></i></p>
</body>
</html>
