スタックの一般的な実装があります。このスタックのオブジェクトの名前はstakで、タイプはCharacter
です。
私は試した
if ( ( ((String)(stak.head).equals("{")) && (str.charAt(i)=='}') ) { /* do something */}
コードは正しくコンパイルされますが、実行時に次のエラーが発生します。
Exception in thread "main" java.lang.ClassCastException: java.lang.Character can
not be cast to java.lang.String
at One.main(One.java:36)
ただし、次のコードは機能します。
if ( ((Character)(stak.head) == '{') && (str.charAt(i)=='}') ) { /* do something */}
文字オブジェクトが文字列にキャストされない理由を説明してください。