2012-01-29 9 views
20

मैं ग्रहण में निम्न कोड चलाने के लिए प्रतीत नहीं कर सकता। मेरे पास एक मुख्य विधि है और यह वर्तमान में खोला गया फ़ाइल है। मैंने "रन एज़" विकल्प भी आजमाया लेकिन मुझे यह त्रुटि मिल रही है: "संपादक में मुख्य प्रकार नहीं है"। मुझसे यहां क्या गलत हो रहा है?ग्रहण त्रुटि: "संपादक में मुख्य प्रकार नहीं है"

public class cfiltering { 

    /** 
    * @param args 
    */ 

    //remember this is just a reference 
    //this is a 2d matrix i.e. user*movie 
    private static int user_movie_matrix[][]; 

    //remember this is just a reference 
    //this is a 2d matrix i.e. 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 i.e. user_movie_matrix with the above dimensions. 
     //4.0 you are welcome to overload constructors i.e. 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()); 
     } 
    } 

} 
+3

इस कोड वाले फ़ाइल का नाम क्या है? – Zyerah

+0

cfiltering.java – JJJ

+1

मुझे लगता है कि यह एक बिल्कुल मान्य सवाल है। असल में, मैंने इसमें भाग लिया और मेरी समस्या का पता लगाया: मैंने स्रोत फ़ोल्डर के तहत एक वर्ग (गलती से) बनाया था: src/main/test, और ग्रहण उस से निपट नहीं सका। जब मैंने सही ढंग से इसे src/test/java के अंतर्गत बनाया, तो यह त्रुटि चली गई। – Jack

उत्तर

20

कोशिश समापन और फ़ाइल को फिर से खोलने, तो Ctrl+F11 दबाएँ।

सत्यापित करें कि आपके द्वारा चलाए जा रहे फ़ाइल का नाम आपके द्वारा काम कर रहे प्रोजेक्ट के नाम जैसा ही है, और उस फ़ाइल में सार्वजनिक वर्ग का नाम आपके द्वारा प्रोजेक्ट के नाम जैसा ही है साथ ही साथ काम करना

अन्यथा, ग्रहण को पुनरारंभ करें। अगर यह समस्या हल करती है तो मुझे बताएं! अन्यथा, टिप्पणी करें, और मैं कोशिश करूंगा और मदद करूंगा।

+0

अब जब मैं इसे अपने कोड में चला रहा हूं, तो मुझे त्रुटियां नहीं मिल रही हैं। परियोजना को पुनर्जीवित करने का प्रयास करें? – Zyerah

+1

ऐसा लगता है कि चाल चल रही है, धन्यवाद! – JJJ

+2

पुनरारंभ करने से मेरी मदद मिली, अगर यह कुछ हितों की रूचि है। – kiltek

3

क्या आपने फ़ाइल पढ़ने की सामग्री के लिए पैकेज आयात किए थे।

import java.io.BufferedReader; 
import java.io.FileInputStream; 
import java.io.InputStreamReader; 

भी यहाँ

cfiltering(numberOfUsers, numberOfMovies); 

आप एक वस्तु बनाने का प्रयास करते हैं या एक विधि कर रहे हैं?

भी एक और बात:

user_movie_matrix[userNo][movieNo]=rating; 

आप एक उदाहरण के एक सदस्य के लिए एक मूल्य बताए जाते हैं जैसे कि यह एक स्थिर चर भी

private int user_movie_matrix[][];Th 

आशा इस मदद करता है Th को दूर था।

+0

मैं उस विधि को कॉल करने का प्रयास कर रहा हूं जो "user_movie_matrix" और "user_user_matrix" के आयामों को बदलता है – JJJ

+0

ओह मैं देखता हूं ... तो आपको क्या करना चाहिए – bernabas

+0

ओह मैं देखता हूं ... तो आपको क्या करना चाहिए कक्षा बनाना विधि'set_user_movie_matrix (x, y) {this.userNo = x; यह। movieNo = y;} '' किसी ऑब्जेक्ट के उन मानों को बदलने के लिए ...फिर किसी नाम के बिना ऑब्जेक्ट बनाने के बजाय 'cfiltering variable_name = new cfiltering (numberOfUsers, numberOfMovies); ' और फिर उस चर का उपयोग करके' variable_name.set_user_movie_matrix (userNo, movieNo) ' – bernabas

1

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);

चाहे या नहीं होना चाहिए कोड इस उत्तर के दायरे से बाहर है के रूप में इन परिवर्तनों के बाद इरादा काम करता है; कई वाक्यविन्यास/स्कोपिंग त्रुटियां थीं।

+0

जैसी विधियों को मैं user_movie_matrix का इरादा नहीं रखता एक स्थिर चर होने के लिए। क्या इसे ठीक से काम करने के लिए स्थिर होना चाहिए? – JJJ

+0

यह स्थिर होना चाहिए क्योंकि कोड लिखा गया है, क्योंकि आप ** सीधे ** इसे एक स्थिर विधि से एक्सेस करते हैं, अर्थात् 'सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] तर्क) '। –

संबंधित मुद्दे