情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | 編集

Javaのraw type警告を消す方法メモ このエントリーを含むはてなブックマーク

raw type 警告

raw typeというのは、ジェネリクス型(型変数を持つ型)の<T>のような型変数部分を取り除いた型のことを言います。たとえば、「Set」は「Set<V>」のraw typeです。

そして、基本的にraw typeは、Java 5より前のバージョンとの互換性のために存在しているイメージで、利用しないことが推奨されます。なので、うかつにraw型を利用すると、次のような警告が出ますここでは、Classクラスを用いた場合です

Class is a raw type. References to generic type Class should be parametarized

日本語だと

Classはraw型です。総称型Class<T>への参照は、パラメーター化する必要があります

ここでは、Eclipseを利用していて、利用しているフレームワークなど、自分が書いたコード以外の部分に警告が表示されている状況を想定します。

Eclipseの言うとおり、アノテーションを付ける

Eclipseを使っていると、修正候補として

Add @SuppressWarnings 'rawtypes' to 'clazz'

のように表示されます。これの通りに修正すれば

Class clazz = ...

が、次のようになります。

@SuppressWarnings("rawtypes") Class clazz = ...

もしフレームワーク内にこのような修正箇所が大量にある場合、何かやる気が起こりませんし、追加する量が多いのに加えて、読むときに邪魔です。そもそもフレームワークに追記すること自体やりたくないです。

総称型にする

総称型を使わないからエラーが出るので、総称型を使えばいいわけです。ということで、シンプルには

Class

と書いてある部分を徹底的に

Class<適切な型名>

にすればいいわけです。そして、徹底的にそれをやるとどうなるかというと、

Cannot create a generic array of Class<型名>

配列でraw typeが使われていると、この方法ではまた別のエラー、そしてこちらはコンパイルできないエラーになってしまいます。

<?>で総称型にする

もっとシンプルに、<?>を問題のraw typeの後ろに付けて総称型にしてしまう手もあります。これを使うとGeneric Type配列が作成できないことを回避できるわけです。なので、配列のところだけ<?>と書いておけばいいことになります。

しかし、それでもやはりソースコードを書き換えたくない。というか、とにかく警告が邪魔なわけです。

Eclipseの警告を表示する機能を止める

警告表示自体をEclipseの設定によって抑制すればソースコードを書き換えることなく、大量の警告を止めることが出来ます。

Window>Preferences>Java>Compiler>Errors/Warnings>Generic types>Usage of a raw type」でWarningをIgnoreにすればOK。

また、設定画面の「Configure Project Specific Settings」を利用すれば、特定のProjectに対してのみこの設定を適用することも出来ます。

まとめ

Eclipseの警告を抑制する方法をメモしたかっただけです

スポンサーサイト
Eclipse | コメント:0 | トラックバック:0 | 編集

Seagate HDDの不具合問題をWindowsが警告するようになった03 このエントリーを含むはてなブックマーク

part01part02に続いて、part03です。

part01で紹介した警告「ハード ディスクの問題が検出されました」に関連すると思われる症状を紹介します。このページに直接検索でやってきた方は、part01をご覧ください。

さて、症状というのは、Windows(該当PCはVistaです。)が起動する前の以下の表示です。

Intel(R) Matrix Storage Manager option ROM v7.5.0.1017 ICH9R wRAID5
Copyright(C) 2003-07 Intel Corporation. All Rights Reserved.

RAID Volumes:
None defined.

Physical Disks:
Port Drive Model Serial # Size Type/Status(Vol ID)
0 ST3320613AS ******** 298.1GB SMART Event
(略)

Press to enter Configuration Utility............

以前は、SMART Eventの部分がNon-RAID Diskだったのですが、最近変わってしまったようです。ものすごく抽象的に言って、「S.M.A.R.Tによって、何かが観測された」ということだと思われます。これに伴い、この画面の表示時間が延び、CTRL-Iを押せと促されますが、まだ試していません。

S.M.A.R.Tは参考にしたことがないのですが、問題が疑われるディスクに対して言われると、さすがに気になります。

また、それに関連し、イベントビューアに以下のようなイベントが記録されていました。

ログの名前(M) : システム
ソース(S) : Disk Diagnostic
イベント ID(E) : 1
レベル(L) : 重大
ユーザー(U) : SYSTEM
...

Windows ディスク診断により、ディスク ST3320613AS (ボリューム C:\;D:\) 上で S.M.A.R.T. 障害が検出されました。このディスクには障害がある可能性があります。コンピュータを今すぐバックアップしてください。ディスクに障害がある場合は、ファイル、文書、画像、プログラム、設定など、ハード ディスク上のすべてのデータが失われる可能性があります。ハード ディスクの修復または交換が必要かどうかを判断するには、お使いのコンピュータの製造元に問い合わせてください。バックアップできない場合 (CD やその他のバックアップ メディアがない場合など) は、コンピュータをシャットダウンして、バックアップ メディアを用意してから再起動してください。当面は、重要なファイルはこのディスクに保存しないでください

重大」はかなり珍しい(ログ中、重大はこのエラーただ一つ)ので、これまた気にせずにはいられません。また、説明文の内容がその、深刻さを表しています。

だからといって、ここでいろいろ考察しても仕方ありませんね。とにかく、バックアップし、早いうちにディスクを交換する意外に手はないでしょう。・・・なんだか役に立たない記事ですみません。

自作PC | コメント:0 | トラックバック:0 | 編集

Seagate HDDの不具合問題をWindowsが警告するようになった02 このエントリーを含むはてなブックマーク

「ハード ディスクの問題が検出されました 」と表示されるようになったことに関連した続報です。

イベントビューアを見ていると、

レベル:警告
ソース:disk
イベント ID:52
全般タブの説明:
ドライバはデバイス \Device\Harddisk0\DR0 が失敗する可能性があることを発見しました。 すぐにデータのバックアップを作成し、ハード ディスクを置き換えてください。 すぐにも障害が起きる可能性があります。

というイベントを発見。

どことなく、「Seagateの不良HDDだから注意してね」という内容から、一歩進んで、「なんかもうやばいこと起こり始めてるよ」という内容に聞こえます。もしそうだとしたら、一大事です。それにしても、「デバイスが失敗する」という表現の意味がいまいち分かりません。

Microsoft TechNet で該当する情報を探すと、以下の内容が見つかりました。

Product : Windows Operating System
Event ID : 52
Source : disk
Version : 5.2
Symbolic Name : IO_WRN_FAILURE_PREDICTED
Message : The driver has detected that device %1 has predicted that it will fail. Immediately back up your data and replace your hard disk drive. A failure may be imminent.

おそらくこのエラーのことでしょう。つまり、「デバイスが失敗する」とは、「device %1 has predicted that it will fail.」の、「fail」のことみたいです。つまり、これは「失敗する」というより、「機能しなくなる」という意味ですね。たぶん。

さて、Tech Net 内の情報には、続きがあります。

Explanation : The device will soon fail, and unsaved data will be lost.
User Action : Back up your data immediately, and then replace the hard disk drive

これを読んだ結論からすると、「なんかもうやばいこと起こり始めてるよ」ではなく、「Seagateの不良HDDだから注意してね」のほうみたいです。ということで、切迫しているわけではなさそう。

それにしても早くHDD交換しないと。

自作PC | コメント:0 | トラックバック:0 | 編集

Seagate HDDの不具合問題をWindowsが警告するようになった このエントリーを含むはてなブックマーク

Seagete製HDDの読み込めなく不具合があってからはや半年。

自分の使用しているハードディスクが該当型番だったため、すこしは気にしていましたが、 不具合の発生(発症)率は低く、今まで大丈夫だったことから、とくに対策をしていませんでした。

すると、ついさっき、Vistaにおいて下記のような警告が

[Main Instruction]
ハード ディスクの問題が検出されました

[Content]
データの損失を防ぐためにディスク上のファイルを直ちにバックアップしてから、コンピュータの製造元に連絡して、ディスクの修理または交換が必要かどうかを確認してください。

[バックアップ プロセスを開始する(S)]
[後でもう一度確認メッセージを表示する(A)]
[キャンセル]

[Expanded Information]
直ちに実行する手順
ディスク障害が発生すると、そのディスク上のすべてのプログラム、ファイル、およびドキュメントが失われるため、重要な情報を直ちにバックアップする必要があります。ハード ディスクを修理または交換するまで、コンピュータを使わないようにしてください。

障害が発生しているディスクの確認
次のハード ディスクで障害が報告されています:
ディスク名: ST3320613AS
ボリューム: C:\;D:\

当時はかなりの大騒ぎになりましたが、半年経過して、ついにMicrosoftも対策に乗り出したようですね。クレームがMicrosoftに寄せられたのか、Seagateが頼んだのかさっぱり分かりませんが。

この警告自体を無視してもいっこうにかまわないのですが、ここはあえて「バックアップ プロセスを開始する(S)」を試しにクリックしてみました。

すると、以下のようなメッセージが表示されました。

障害が発生しているハード ディスクのバックアップ、診断、および交換の手順を印刷する。

バックアップは、手順が印刷または保存された後に開始されます。

  • 手順を印刷(推奨)(P)
  • 手順を安全な場所に保存(S)
    印刷できない場合は、障害が発生しているディスク以外の場所(USB フラッシュ ドライブ、 CD、 ネットワーク上など)に手順を保存してください。
  • 手順をスキップ(K)
    手順を印刷または保存することを強くお勧めします。ただし、今は印刷も保存もできない場合は、バックアップ プロセスを開始できます。
  • 手順を表示

    後で通知する(R)

手順を表示を選択して表示された文章がこちら。

ハード ディスク エラーの修復に関する手順:

データの損失を避けるためにコンピュータをバックアップすることを強くお勧めします。

コンピュータをバックアップした後で、コンピュータの製造元または他のハードウェア テクニカル サポートに連絡して、エラーが発生したディスクを修理または交換する必要があるかどうかを確認してください。

印刷したこれらの手順をデータのバックアップに使用したメディア (CD や USB フラッシュ ドライブなど) と一緒に保管して、コンピュータの修復に必要なものを一か所にまとめることをお勧めします。

以下の情報は、ハードウェア テクニカル サポートの担当者がエラーが発生したハード ディスクを診断するのに役立ちます。

ディスク名: ST3320613AS
ボリューム: C:\;D:\

・・・これ、手順じゃないですよね。これじゃ仕方ないので、「手順を安全な場所に保存」を選択して以下のような「ディスク回復の手順.txt」を保存しました。しかし、中身は同じ。つまり・・・これで手順は全部のようです。

ちなみに、問題のあるHDDを保存先に指定すると、

後で手順にアクセスできるように、障害が発生しているディスク以外の場所を選択してください。たとえば、 CD、 USB フラッシュ ドライブ、 ネットワーク フォルダなどに保存します。

と表示されて保存できません。

そして、保存が終了すると以下のような表示が。

手順が正常に保存されました。ファイルをバックアップしてください。

  • Windows バックアップと回復を開く(O)
  • 他のバックアップ プログラムを手動で実行する(M)

後で通知する(R)

つまり、バックアップはWindows バックアップを利用するようです。

全貌が分かったので、これにて終了。このまま何事も起こらないことを祈っています。

ちなみに、対象になっているハードディスクはこちら。

Barracuda 7200.11
ST31000340AS
ST31000640AS
ST3750330AS
ST3750630AS
ST3640330AS
ST3640630AS
ST3500320AS
ST3500620AS
ST3500820AS
ST31500341AS
ST31000333AS
ST3640323AS
ST3640623AS
ST3320613AS
ST3320813AS
ST3160813AS

Barracuda ES.2 SATA
ST31000340NS
ST3750330NS
ST3500320NS
ST3250310NS

DiamondMax 22
STM31000340AS
STM31000640AS
STM3750330AS
STM3750630AS
STM3500320AS
STM3500620AS
STM3500820AS
STM31000334AS
STM3320614AS
STM3160813AS

自作PC | コメント:2 | トラックバック:0 | 編集

発行元を確認できませんでした。このソフトウェアを実行しますか? このエントリーを含むはてなブックマーク

インターネットからダウンロードしたファイルの実行ファイル(.exeファイル)をダブルクリックで実行してみると、「開いているファイル - セキュリティ警告」というタイトルで、「発行元を確認できませんでした。このソフトウェアを実行しますか?」という質問が表示されます。

自分で実行したつもりのない怪しいファイルでこれが表示されたらとても有効なのですが、自分がダウンロードして、自分で実行しようとしているソフトを実行するたびにこれが聞かれたらめんどくさいですよね。

だからといって、下に表示されているチェックボックス「この種類のファイルであれば常に警告する」をオフにしたら、ちょっと怖かったりします。

たぶん、これはWindowsXP SP3 からだと思うのですが、ここでは「ソフト別にこの警告を表示しないように設定する方法」を紹介します。


やり方は簡単です。実行ファイル(.exe)ファイルを右クリックして、プロパティを表示します。

全般タブの下の方に「ブロックの解除」というボタンがあるので、それをクリックします。はい、終わり。

簡単ですね。これだけで、先ほどのような警告二度と表示されないようになります
未分類 | コメント:0 | トラックバック:0 | 編集
 | HOME | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。