0
我試圖在我的main
方法中創建BrowserSession
類的實例,並且出於某種原因,NetBeans無法訪問設置方法或構造函數它通過Socket
作爲參數。我的YK250X
和BrowserSession
都在同一個包中,只要我不想傳遞任何東西,我就可以創建一個BrowserSession
的實例。否則,我會收到一條cannot find symbol
錯誤消息。只能調用我的主要方法中相同包中的一個單獨的類的某些方法
這裏是我的主要方法的代碼:
package yk250x;
/**
*
* @author Sophia_M-D
*/
import java.net.ServerSocket;
import java.net.Socket;
import java.io.BufferedReader;
public class YK250X {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
int BrowserListenPort = 100;
ServerSocket BrowserListenSocket = new ServerSocket(BrowserListenPort);
Socket BrowserConnectionSocket = BrowserListenSocket.accept();
BrowserSession ThisBrowserSession = new BrowserSession();
ThisBrowserSession.setBrowserConnectionSocket(BrowserConnectionSocket);
}
}
這裏是我的BrowserSession
類代碼:
/**
** @author srm349
*/
import java.net.ServerSocket;
import java.net.Socket;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.IOException;
import java.lang.Thread;
public class BrowserSession{
//Member Variables
private Socket BrowserConnectionSocket;
private PrintWriter BrowserStream;
//Constructor Methods
public BrowserSession(Socket NewSocket){
BrowserConnectionSocket = NewSocket;
}
public BrowserSession(){
}
//Get&Set Methods
public Socket getBrowserConnectionSocket(){
return BrowserConnectionSocket;
}
public void setBrowserConnectionSocket(Socket newConnection){
BrowserConnectionSocket = newConnection;
}
// method through which information is sent to the browser
public boolean WriteMessage(String Message){
try{
if(BrowserStream == null)
BrowserStream = new PrintWriter(BrowserConnectionSocket.getOutputStream());
BrowserStream.println(Message);
BrowserStream.flush();
return true;
} catch(IOException Error) {
return false;
}
}
}
如果您使用標準的命名約定,那麼每個人(其他人)都會更容易。特別是,不是'static'和'final'變量的名字都應該以*小寫*字母開頭。 –
我無法通過命令行編譯器重現您的問題,並且我沒有看到爲什麼應該有一個問題。我最好的猜測是,NetBeans出於某種原因持有一個陳舊的'BrowserSession.class'版本。那樣的話,解決辦法就是強制重建。 –