• 締切済み

プログラムからメソッドを呼び出したいのですが

今、ArtName.javaのプログラムにM_data.javaのプログラム内のメッソドを呼び出したいのですがコンパイルするとエラーになってしまいます。どのように記述すればメッソドを呼び出すことができるかご教授お願いたします。 以下がプログラムになります。 /*ArtName.java*/ import java.io.*; import java.nio.channels.*; import java.util.Arrays; class ArtName{ public static void an(String[] arg){ int i,j,number,song; char artname[]=new char[song]; M_data.music(); number=1; for(i=0;i<song;i++){ for(j=0;j<song;j++){ if(TagInfo[i]!=TagInfo[j]){ number++; } } } } } /*M_data.java*/ import java.io.*; import java.nio.channels.*; import java.util.Arrays; class TagInfo{ final private String name; final private int pos; final private int len; public TagInfo(String name,int pos,int len){ this.name=name; this.pos=pos; this.len=len; } public String getName() { return name; } public int getPos() { return pos; } public int getLen() { return len; } } public class M_data { private static byte[] copyOfRange(byte b[],int pos, int len){ byte[] a=new byte[len]; System.arraycopy(b,pos,a,0,len); return a; // return java.util.Arrays.copyOfRange(b,pos,pos+len); } static void music() { File file = new File("C:/Users/NEC-PCuser/Downloads/ Answer .mp3"); FileInputStream fis=new FileInputStream(file); String charsetName="Shift_JIS"; //if(1<args.length) charsetName=args[1]; FileChannel fc=fis.getChannel(); fc.position(fc.size()-128); byte[] b=new byte[128]; if(fis.read(b)==128 && b[0]=='T' && b[1]=='A' && b[2]=='G'){ TagInfo[] infos={new TagInfo("Song title:",3,30),new TagInfo ("Artist:",33,30)}; int i=0; /*以下のfor文です*/ for(TagInfo info: infos){ System.out.print(i + info.getName()); System.out.println(new String(copyOfRange(b,info.getPos (),info.getLen()),charsetName)); i++; } } } public static void main(String[] args) throws IOException{ music(); } } ArtName.javaをコンパイルすると Artname.java:17シンボルが見つかりません。 シンボル:ArtNameのクラス        if(TagInfo[i]!=TagInfo[j]{ とエラーになります。どのように記述すればコンパイルできるかお教えてください。 よろしくお願いいたします。

みんなの回答

  • myuki1232
  • ベストアンサー率57% (97/170)
回答No.1

いろいろとおかしいので1つだけ。 TagInfo は M_data.java の非公開クラスなので、外部からアクセスできません。 コメントが何もなくて何をしたいのかわからないので、とりあえずこれだけにします。

noname#149085
質問者

お礼

お礼の言葉が遅れてしまいまして申し訳ございませんでした。 ご回答ありがとうございます。