問題タブ [jdk-internal-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - AWTUtilities.setWindowShape() の使用に注意する必要がありますか?
アプリケーションでクラスを使用して、AWTUtilities
カスタム ウィンドウ形状を作成しています。私の知る限り、他に方法はありません。それは要件です。
javadoc 生成で次のエラーが表示されます。
警告: com.sun.awt.AWTUtilities は Sun 独自の API であり、将来のリリースで削除される可能性があります
これは正確にはどういう意味ですか?使用できますが、どのリリースで動作しなくなる可能性がありますか? では、なぜ入れるのでしょうか?さらに重要なことに、ここでの本当の問題は、もし Sun がそれを取り除けば、同じことを行う別の方法に置き換える可能性が高いでしょうか? それが警告の目的ですか?
コードを呼び出す前に、AWTUtilities クラスの存在を確認するだけでよいと思います。しかし、私がそれをする必要がない場合、それは不快です。
似たようなクラスの経験がある人はいますか?それらは最終的に API に受け入れられ、警告は削除されたか、同じことを行う別の方法に置き換えられましたか? これについて心配する必要がありますか?
参考までに、私はこれを読みました:
java - Sun 独自の API の使用に関するビルドの警告
ビルド環境をクリーンアップしようとしていますが、Sun 独自の API の使用に関していくつかの警告が報告されていることを発見しました。
と...
これらの API に代わる良い方法を提案できる人はいますか? または、これらを公式の Java API に置き換えることはできますか? これらは単なる警告であることは認識していますが、これは解決する予定です。
java - jdk7: sun.font.fontManager の置き換え/fontname からファイル名情報を取得する方法
Oracle(Sun) JDK6 を使用し、Oracle JDK7 に移行しようとしています
sun.awt.GraphicsEnvironment
PDFファイルで使用されているPDFフォントを変更するために使用するために、すべてのシステムフォントを検索するために使用しています。これが私が使用している正確なコードです:
その後、システム上の正確なフォント ファイル パスを取得する必要があるため、次を使用します。
問題は、sun.font.FontManager
それがクラスではなくなり、インターフェイスに変換されたことです。オンラインで検索したところ、満足できない解決策がいくつか見つかりました。問題の解決に役立つ他のアイデアを探しています。
私が見つけた解決策:
- プロジェクトを Java 7 ではなく Java 6 にデプロイします (Java 7 のいくつかの新機能を使用するため、お勧めしません)。
- FontManager クラスのコードをオンラインで見つけましたが、それを使用するには他の多くのクラス/インターフェイスを含める必要があり、プロセスはダミーで時間がかかるようです。また、そのコードは Sun 社の所有物であるため、そのコードを使用することが許可されている場合は使用しません。
私が必要としているのは: *システム上の正確なフォント ファイル パスを見つける方法*。すべてのアイデアを歓迎します。
java - コンパイルの警告が表示されないようにするには、sun.awt.shell.ShellFolder を何に置き換える必要がありますか?
sun.awt.shell.ShellFolder.get("fileChooserComboBoxFolders");
置き換えたい(または可能であれば警告を抑制したい)方法があります。削除の可能性がある場合に警告が表示されないように、Sun の所有物ではないものに置き換えることはできますか?
--
更新:コードがまったく必要かどうかはわかりません。これはレガシー コードにあり、すべてのコンパイル警告を削除するように求められました。ShellFolder に特有のものは次のとおりです。
--
必要な理由に関する更新 #2: JFileChooser にはまだ少しバグがあります。
java - 伝搬前に反射メンバーをコピーする必要があるのはなぜですか?
フィールド、メソッド、またはコンストラクターのリフレクション オブジェクトを取得するソース コードを調べると、それらのコピーが返されます。例として取得フィールドを見てみましょう:
と
と
そして jdk.internal.reflect.ReflectionFactory で
そして java.lang.reflect.Field で
そしてjava.lang.reflect.ReflectAccess(jdkの実装
そして最後に java.lang.reflect.Field に戻ります
しかし、なぜ?単純にルートの Field オブジェクトにアクセスして、それをいじることはできないのでしょうか?