- ベストアンサー
java で #include
Cでいう、#include をjavaでしたいのですが、何か手はありませんか? 例えば、 in hogehoge.java public class hogehoge { #include "hogehoge.h" コード一杯 } in hogehoge.h private static String=データ一杯 みたいなイメージです こんな感じも可能かな? in hogehoge.java public class hogehoge { public static main() { String hogedata[][]=hogehogedata.hogehogedataget(); } } in hogehogedata.java public class hogehogedata { private static String hogehogedata_all[][]=データ; public static String hogehogedataget() { return hogehogedata_all; } } スマートなやり方を御教授下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Javaに#includeはありませんが、必要を感じたことはないですね。 この場合、こんな感じでいいのではないでしょうか? public class HogeData { public static String HOGE_DATA = { "HOGE", … }; } public class Hoge1 { public static void main(String[] args) { for(int i = 0 ; i < HogeData.HOGE_DATA.length ; i++) { System.out.println(i + "=" + HOGE_DATA[i]); } } }
その他の回答 (2)
- PecoPlus
- ベストアンサー率76% (144/188)
こんにちは。 私はC++をちょっとかじっただけなので、include文は、ぼんやりとしか理解していないのですが、今回、おっしゃっているのは、例えば、 public class Test1 { String[] baseballPlayerName = {"太郎", "次郎", "三郎", "四郎", "五郎", "六郎", "七郎", "八郎","九郎"}; public static void main(String[] args) { Test1 test = new Test1(); test.printAllPlayers(); } public void printAllPlayers() { for (int i = 0; i < baseballPlayerName.length; i++) System.out.println(baseballPlayerName[i]); } } このプログラムの String[] baseballPlayerName = {"太郎", "次郎", "三郎", "四郎", "五郎", "六郎", "七郎", "八郎","九郎"}; この部分を毎回書くのがめんどくさいってことでいいですか? 私でしたら、こんな風に書いてしまいます。 スマートかどうかはわかりません。 public class Test2 { BaseballPlayers players; public static void main(String[] args) { Test2 test = new Test2(); test.printAllPlayers(); } public Test2() { players = new BaseballPlayers(); } public void printAllPlayers() { for (int i = 0; i < players.name.length; i++) System.out.println(players.name[i]); } } public class BaseballPlayers { String[] name = {"太郎", "次郎", "三郎", "四郎", "五郎", "六郎", "七郎", "八郎","九郎"}; } 質問の意図を勘違いしていたら、すみません。
お礼
面倒臭いのではなく、そこでしか使わない汎用性のないデータ定義等を、 ファイル分けしたいんです。
- pcbeginner
- ベストアンサー率46% (261/560)
1番スマートなのは ・javaの入門書を買って、1からちゃんんと勉強する。 ですね。 おそらく質問内容が ・他のクラスを参照するにはどうするのか? ということだと思われるので、そういうことだと思って回答します。 import文(文なのか?)を使います。 Aクラスから他のクラスを参照する場合、 Aクラスと同じパッケージにあるクラスを参照する場合はimportしなくても参照できます。 Aクラスと違うパッケージにあるクラスを参照する場合は package hoge; import hoge.hoge2.B;//hoge.hoge2パッケージのBクラスをインポート public class A{ B b = new B();//インポートしたBクラスのインスタンス } またインポートしなくても、クラス内でパッケージごと宣言する方法もあります。 package hoge; public class A{ hoge.hoge.B b = new B();//パッケージごと宣言 } それから、インポートしても実際にクラスパスにインポートしたクラスがなければコンパイルできません。 また、コンパイル時にはあっても、実行時になければ実行時エラーが起きます。 あっ、あと、 import hoge.hoge2.B; を import hoge.hoge2.*; とすることもできます。この場合はhoge.hoge2パッケージ以下の全てのクラスをインポートします。 (インポートしなくてもいい無駄なクラスも全てインポートしている。) クラスですので、パッケージはインポートできません。 hoge.hoge2.B hoge.hoge2.hoge3.C の場合に import hoge.hoge2.*; としてもhoge.hoge2.hoge3.Cクラスはインポートされてないので別途インポートする必要あり。
補足
>・javaの入門書を買って、1からちゃんんと勉強する。 >ですね。 ない物は載ってもいないでしょう。 >おそらく質問内容が >・他のクラスを参照するにはどうするのか? >ということだと思われるので、そういうことだと思って回答します。 ちゃいます。 わざわざクラス分けせずにソースファイルを分けたいだけです。
お礼
やっぱりクラス分けしかないかな。 長ったらしいデータ定義とかが混じるとソースの視認性を 損ねるので欲しいとこではあります。