У меня есть два класса, Test и Test2. Тест создает экземпляр Test2, который используется для записи в файл с помощью PrintStream и FileOutputStream.write (String) имеет частный доступ в PrintStream
Я получаю сообщение об ошибке:
write(String) has private access in PrintStream
output.write(str);
^
Почему это дает мне эту ошибку, если я правильно называть приватную переменную внутри класса он был объявлен в?
public class Test
{
public static void main (String[] args)
{
Test2 testWrite = new Test2();
testWrite.openTextFile();
testWrite.writeToFile("Hello.");
testWrite.closeFile();
}
}
и
import java.io.*;
public class Test2{
private PrintStream output;
public void openTextFile(){
try{
output = new PrintStream(new FileOutputStream("output.txt"));
}
catch(SecurityException securityException){}
catch(FileNotFoundException fileNotFoundException){}
}
public void writeToFile(String str){
try{
output.write(str);
}
catch(IOException ioException){}
}
public void closeFile(){
try{
output.close();
}
catch(IOException ioException){}
}
}
Есть ли причина записи частный метод и Println нет? Почему javadocs не показывают, что [write] (http://docs.oracle.com/javase/7/docs/api/java/io/PrintStream.html#write (int)) является приватным? Это сработало. – Matthew
Вы смотрите на неправильный метод 'write', который имеет другую подпись. В вопросе принимает строку, которая является [private] (http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/io/PrintStream.java# PrintStream.write% 28char% 5B% 5D% 29). Я бы предположил, что 'write (String)' предназначен только для внутреннего использования – Reimeus
О, я вижу. Являются ли документы java, которые я рассматриваю неправильно, или я неправильно их интерпретирую? – Matthew