- PR -

使用時Class名の重複

1
投稿者投稿内容
get
常連さん
会議室デビュー日: 2003/10/02
投稿数: 21
投稿日時: 2004-11-26 14:36
いつも拝見させて頂いております。

現在java,strutsの勉強をしています。

そこで質問させていただきます。

現在下記の様なことで困っています。
package jp.co.example;
という階層にLevelという名前のClassを作成しました。

import jp.co.example.Level;
import org.apache.log4j.Logger;

とした時に
logger.setLevel(Level.DEBUG);
でLevelというclass名がバッティングしてしまいます。

このような時は皆様はどのように回避するのでしょうか?

単純に自分が使うclassの名前を変えればよいのですが
修正等時間も掛かりますし修正ミスも起こると思います。

よろしくお願い致します。
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-11-26 14:43
引用:

import jp.co.example.Level;
import org.apache.log4j.Logger;


この場合だと、単にLevelと指定した場合はjp.co.example.Levelクラスだと認識しますよね。
パッケージの異なる同名のクラスを同じクラス内から参照する場合は、完全修飾名で宣言する
しかありません。
get
常連さん
会議室デビュー日: 2003/10/02
投稿数: 21
投稿日時: 2004-11-26 14:46
大変早いレスありがとうございます。

やはり下記のように完全修飾名にするしかないのですね。
logger.setLevel(org.apache.log4j.Level.DEBUG);

勉強になりました。
ありがとうございました。
takamaro
大ベテラン
会議室デビュー日: 2004/10/12
投稿数: 100
投稿日時: 2004-11-27 03:48
蛇足ですが、J2SE5.0からでしたら

import static org.apache.log4j.Level.DEBUG;

と定義すれば

logger.setLevel(DEBUG);

と書けますね。
でも、重複させないことが一番賢明だろうとは思います。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2004-11-27 12:37
さらに蛇足ですが、
java.sql.Dateとjava.util.Dateを
両方使うときとかも気をつけてください。
よく聞く話ですので。。。
1

スキルアップ/キャリアアップ(JOB@IT)