2010年10月29日金曜日

クラスに含まれるStaticフィールドの値を列挙してみる。

いつも忘れてしまう。
プリミティブ型の値範囲。
ちまちま書くのがめんどくさかったので、リフレクションを使って書いてみました。

再利用性はありません。あしからず。
でもtypeNames辺りに表示したいクラス名をいれてあげれば何でもいけちゃいます。

・・・ってかそろそろ値範囲覚えろよ。オレ。

package examples;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public class ShowStaticField {

 /**
  * スタティックフィールドの値を表示します。
  * @param args
  */
 public static void main(String[] args) {
  //表示したいクラス名を列挙。
  //別に何のクラスでもOK。
  String[] typeNames= {
    "java.lang.Boolean",
    "java.lang.Character",
    "java.lang.Byte",
    "java.lang.Short",
    "java.lang.Integer",
    "java.lang.Long",
    "java.lang.Float",
    "java.lang.Double"    
  };
  
  for(int i=0 ; i < typeNames.length;i++ ){
   Class clazz;
   try{
    //列挙したクラスを取得。
    clazz = Class.forName(typeNames[i]);
    System.out.println("■"+clazz.getName()+"のStaticフィールド情報■");
    Field[] clazzFields = clazz.getFields();
    for(int j = 0 ; j < clazzFields.length ; j++ ){
     if(Modifier.isStatic(clazzFields[j].getModifiers())){
      System.out.println(clazzFields[j].getName()+":"+clazzFields[j].get(null));
     }
    }
   }catch(Exception e){
    e.printStackTrace();
   }
  }
  
 }
}



実行結果


■java.lang.BooleanのStaticフィールド情報■
TRUE:true
FALSE:false
TYPE:boolean


・(略)


2010年10月19日火曜日

itunes 10 日本語ジャンルに書き換わる問題を解消してみる。【for windows】

itunesがupdateされるといつも日本語ジャンルに書き換わってしまいます。
ほんと困るよね~。
っと言うわけで、義務的作業。
Localizable.stringsを書き換えて対応っと思ったのですが、、、
今回は何か様子が違いますね。

itunesのバージョン7くらいまでは、
Program Files ⇒ iTunes ⇒ iTunes.Resources ⇒ ja.lprojフォルダにある
Localizable.stringsのジャンル名をen.lprojフォルダの内容でコピペ保存でOKでしたが、
保存後に起動確認しようとしましたが、下記エラーが出て立ち上がりません。

【エラー内容】
iTunes cannot run because some of its required files are missing. Please reinstall iTuens.
(ファイルないから、もっかいインストールしてねという旨)

【症状】
Localizable.stringsを保存すると、保存後のファイルが文字化けする。
保存時に、既存の文字コード、改行コードは替えていない
なお、修正せずに上書き保存を行っただけでも起動が不可能になる。

【原因】
どうやら、「iTunes U」の箇所がおかしい模様。
バイナリエディタ(Stirling)で確認した所、iTunesとUの間はタダのスペースではなく、「A0 00」が入ってます。
※通常のスペースは「20」

って言うか至る所にこのコードがあるぞ。
バイナリエディタで置換しても、テキストエディタで置換しても不可能っすね・・・。

【解消手順】
下記サイトの、
「iTunesでジャンルを勝手に日本語に書き換えられないようにするスクリプト」が素敵。
http://www1.atwiki.jp/itunes/pages/26.html#id_a7a8d45d

今回は完全に他力本願。
私では太刀打ちできませんでした。
作った人に感謝。
すげぇなぁ。