質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

5回答

1469閲覧

ヒントを提供しますとはどんな意味なんでしょう?

toutou

総合スコア2050

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

2クリップ

投稿2017/05/05 09:50

編集2017/05/05 15:38

いろいろ読んでますと、メゾットの説明文に「ヒントを提供します。」と書かれた物を見かけます。一般的な意味では助けとかそんな意味になるんでしょうが、プログラム用語的にはどんな意味なんでしょうか。オブジェクト的なものを出してくれるのかなという感じもしましたが、どうもおかしい気がします。正しい意味を教えてください。

例:setDefaultLookAndFeelDecoratedの説明文
新しく作成された JFrame が、現在の Look & Feel によって提供されるウィンドウ修飾 (境界、ウィンドウをクローズするウィジェット、タイトルなど) を備えるかどうかについてのヒントを提供します。defaultLookAndFeelDecorated が true の場合←提供するのにtrue設定?なんかくれるんじゃないの?

追記;

isDefaultLookAndFeelDecoratedの説明文

新しく生成される JDialog の現在の Look & Feel (L&F) で実行できるウィンドウ装飾を保持する場合は true を返します。これは単なるヒントであり、Look & Feel がこの機能をサポートしない場合もあります。←単なるヒントであり?じゃこれ関係ないのか?ヒントって何だ?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

ベストアンサー

ヒントという単語のJavaリファレンス上のニュアンスは以下のようなものであると思います。

プラットフォーム依存の実装や低水準な外部ライブラリーに依存するオプションナルな機能に対する指示のこと。その指示があっても、実装や状況によって効果があったりなかったりするという意味合い。

プラットフォーム共通に必ず一定の効果があるようなものはヒントという言葉は使われていないと思います。

いくつかの例:

java.sql.Statement#setFetchDirection

Statement オブジェクトを使用して作成された ResultSet オブジェクトの行が処理される方向についてのヒントをドライバに提供します。

つまり情報としてJDBCドライバーへ渡すけど、JRE自体ではその振る舞いについて保証するわけではなくドライバーを作った人がそれをみて振る舞いを決めてくれることを期待するというニュアンス。

java.awt.Image#setAccelerationPriority

このイメージの高速化の重要性に関するヒントを設定します。

低水準な実装に関してなんらかの最適化の方式が考えられる場合、この情報によってうまく最適化ができる可能性があるというもの。やはり実装・状況依存なので常に期待通りになるとは限らないといったニュアンス。

投稿2017/05/06 00:25

KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toutou

2017/05/06 02:01

つまり隠された機能があるけど動作に自信がなく、使うかはそっちの自由ですよということですね。それを使うことを提供と。ありがとうございます。
KSwordOfHaste

2017/05/06 02:21

保証がないことを「自信がない」とは表現しませんがw; それを指定することの意味をプログラマーに正確に伝えるための用語だと思います。
guest

0

基本的には、JFrame にウィンドウの修飾をつけるように設定する (set) のですが、現在の Look & Feel にウィンドウの修飾がなければ、その JFrame は何もせずにそのまま表示されます。あればやるけど、なければやらないよ、というわけです。

つまり、設定しても必ずするわけではないので、ヒントを与える、と言っているわけです。

投稿2017/05/05 20:23

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toutou

2017/05/06 02:04

必ず実行されるわけではなく補助的なものであるから、それを総称してヒントってことですね。ありがとうございます。
guest

0

Javaのようにクロスプラットフォームで便利なものは、複数のOSに対応していることが多いです。
この場合、「WindowsではできるけどLinuxではできない」ようなことがあります。
ってことを誰か書けばよかったのでは、と思うので追記です。

それ以外の場合もありますが、OS対応は分かりやすい例です。
例えば.NETではWindowsに対して網羅的な機能が提供されますが、MonoというLinuxやMacの実装を使うと処理が存在しないものもあります。

アプリケーションのコードで、「その機能があればそうするように設定しておいてよね」とすることが「ヒント」です。setDefaultLookAndFeelDecoratedが実際にどうであるかはわかりませんが。

基本的に、ヒントと書かれているものへの対応は、各OSのJavaマシンの実装者に委ねられることになると思います。そのフラグが直接「ウィンドウ修飾 (境界、ウィンドウをクローズするウィジェット、タイトルなど) を備える」という操作を行うわけでないし、フラグが立っているからといってどう対応するかはその先の処理の実装者次第、ということでしょう。


ここからはより具体的にヒントの有用性について書きたいと思います。

例えば、貴方はメモリ配列を圧縮するライブラリを作ったとします。
デフォルトではOSにインストールされている圧縮ツールをバイパスしますが、オプションでより高速な圧縮ツールがインストールされていればそちらを使うことのできるように設計したとしましょう。

高速な圧縮ツールがインストールされていないかもしれません。
ライブラリ使用者が「OSデフォルトのみ」を使うようにしたいかもしれません。

このような場合、「より高速な圧縮ツールがインストールされていればそちらを使うように指示する」というヒントを持つオプションを実装できるでしょう。
愚直に「圧縮ツールの設定」というオプションを公開することもできますが、利用しやすいのはヒントを用いた実装と言えるでしょう。

java

1// ヒントを用いない実装 2if (lib.Has高速な圧縮ツール) 3{ 4 lib.高速圧縮(メモリ配列); 5} 6else 7{ 8 lib.圧縮(メモリ配列); 9} 10 11// ヒントを用いた実装 12lib.set高速な圧縮ツールがあれば使う(true); 13lib.圧縮(メモリ配列);

投稿2017/05/08 01:58

編集2017/05/08 02:04
haru666

総合スコア1591

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

細かいニュアンスは文章を書いた人でないとわからないです。あるいは強引な訳文かもしれません。

投稿2017/05/05 14:20

HogeAnimalLover

総合スコア4830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toutou

2017/05/05 15:25

細かいニュアンスは違ったとしてもある程度の共通認識がないと読み解けないと思うんですが、そこらへんをあいまいにして他の部分で補強してなんとなくで使ってるんですか?実際使ってみたり想像でこういうものだという理解で。
KSwordOfHaste

2017/05/05 23:54

Provides a hint as to ...という原文ですが、たぶん素直な翻訳だと思います。JavaDocはMSDNなどと異なり人間が翻訳していると思うのでヘンテコな訳はほとんど見かけない印象です。わかりやすいかどうかは別ですがw
toutou

2017/05/06 02:07

翻訳サイトそのままの翻訳に近いですね。もっとちゃんとしてるものかと思ってました。provideは規定、hintはわずかという意味があるそうなので些細な設定ですがこれを使えますよ、という意味に捉えました。ありがとうございます。
guest

0

ここで設定した値はLookAndFeelという仕組み内で使用されるらしいので、「LookAndFeelへ情報を提供するために設定する」という意味で提供すると表現しているのではないでしょうか。

投稿2017/05/05 14:03

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toutou

2017/05/05 15:29

こちら側ではなくメゾットへの値の提供っていう感じでいいんでしょうか。つまり「引数に何かを自分がメゾットに提供すること」をヒントを提供しますといってるんでしょうか?
toutou

2017/05/06 02:04

大体のニュアンスは判った気がします。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問