Eclipse错误:“编辑器不包含主类型”
我似乎无法在Eclipse中运行以下代码。 我有一个main方法,这是当前打开的文件。 我甚至尝试了“运行方式”选项,但我不断收到此错误:“编辑器不包含主类型”。 我在这做错了什么?
public class cfiltering { /** * @param args */ //remember this is just a reference //this is a 2d matrix ie user*movie private static int user_movie_matrix[][]; //remember this is just a reference //this is a 2d matrix ie user*user and contains //the similarity score for every pair of users. private float user_user_matrix[][]; public cfiltering() { //this is default constructor, which just creates the following: //ofcourse you need to overload the constructor so that it takes in the dimensions //this is 2d matrix of size 1*1 user_movie_matrix=new int[1][1]; //this is 2d matrix of size 1*1 user_user_matrix=new float[1][1]; } public cfiltering(int height, int width) { user_movie_matrix=new int[height][width]; user_user_matrix=new float[height][height]; } public static void main(String[] args) { //1.0 this is where you open/read file //2.0 read dimensions of number of users and number of movies //3.0 create a 2d matrix ie user_movie_matrix with the above dimensions. //4.0 you are welcome to overload constructors ie create new ones. //5.0 create a function called calculate_similarity_score //you are free to define the signature of the function //The above function calculates similarity score for every pair of users //6.0 create a new function that prints out the contents of user_user_matrix try { //fileinputstream just reads in raw bytes. FileInputStream fstream = new FileInputStream("inputfile.txt"); //because fstream is just bytes, and what we really need is characters, we need //to convert the bytes into characters. This is done by InputStreamReader. BufferedReader br = new BufferedReader(new InputStreamReader(fstream)); int numberOfUsers=Integer.parseInt(br.readLine()); int numberOfMovies=Integer.parseInt(br.readLine()); //Now you have numberOfUsers and numberOfMovies to create your first object. //this object will initialize the user_movie_matrix and user_user_matrix. new cfiltering(numberOfUsers, numberOfMovies); //this is a blankline being read br.readLine(); String row; int userNo = 0; while ((row = br.readLine()) != null) { //now lets read the matrix from the file String allRatings[]=row.split(" "); int movieNo = 0; for (String singleRating:allRatings) { int rating=Integer.parseInt(singleRating); //now you can start populating your user_movie_matrix System.out.println(rating); user_movie_matrix[userNo][movieNo]=rating; ++ movieNo; } ++ userNo; } } catch(Exception e) { System.out.print(e.getMessage()); } } }
尝试关闭并重新打开文件,然后按Ctrl+F11
。
validation您运行的文件的名称是否与您正在使用的项目的名称相同,并且该文件中的公共类的名称与您正在使用的项目的名称相同。
否则,重启Eclipse。 如果这解决了问题,请告诉我! 否则,评论,我会尽力帮助。
您是否导入了文件读取包的包。
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.InputStreamReader;
也在这里
cfiltering(numberOfUsers, numberOfMovies);
您是在尝试创建对象还是调用方法?
还有一件事:
user_movie_matrix[userNo][movieNo]=rating;
您正在为实例的成员分配值,就好像它是一个静态变量一样,也删除了Th
in
private int user_movie_matrix[][];Th
希望这可以帮助。
private int user_movie_matrix[][];Th
。 应该是`private int user_movie_matrix[][];
。
private int user_movie_matrix[][];
应该是private static int user_movie_matrix[][];
cfiltering(numberOfUsers, numberOfMovies);
应该是new cfiltering(numberOfUsers, numberOfMovies);
在这些更改之后代码是否按预期工作超出了本答案的范围; 有几个语法/作用域错误。
- Eclipse和Tomcat:如何指定项目中提供的文件夹?
- 使用父pom中的pluginManagement在eclipse中生命周期配置错误未涵盖插件执行
- Eclipse没有在项目资源管理器中显示编译错误
- 使用Telegram API for Java Desktop App?
- Eclipse:在块中查找可以抛出exception的行
- load-time-weaver(aspectj-weaver)在apache tomcat 7.0.55中不起作用
- Eclipse SVN Synchronze工作空间错误 – 更新SVN工作区的同步视图 – java / nio / file / Paths
- 无法在目标定义中找到可安装单元
- Eclipse插件片段