2016-02-18 2 views
-1

Итак, сейчас я делаю тест JUnit для сохранения и загрузки файла сохранения в формате JSON. Однако, сохраняя работу без проблем, я продолжаю сталкиваться с проблемой, когда строка, которую я читаю из файла, не сохраняется в переменной, которую я пишу.Тест JUnit показывает строку, не равную, когда должен быть равен

public void loadSettings(Vector<User> U, String url, String filepath) { 
     JSONParser parser=new JSONParser(); 
     try { 
      Object obj=parser.parse(new FileReader(filepath)); 
      JSONObject jsonObject=(JSONObject) obj; 
      url=jsonObject.get("URL").toString(); 
      //System.out.println(URL); 
      JSONArray users=(JSONArray)jsonObject.get("Users"); 
      Iterator<Object> iter=users.iterator(); 
      while(iter.hasNext()) { 
       String temp1=iter.next().toString(); 
       Long temp2=(Long)iter.next(); 
       User n=new User(temp1,temp2.intValue()); 
       U.addElement(n); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

Данная строка является строкой "url". Значения для класса пользователя I вставляются в порядке. Я не знаю, в чем проблема, и я работаю над этим часами. Может ли кто-нибудь помочь?

+0

Вы ничего с 'url' не делает. Почему вы проходите строку 'url', а затем присваиваете что-то новое для этого параметра? –

+2

Java передает свои параметры ** по значению **. Независимо от того, какие изменения вы внесете в 'url' внутри метода, это не повлияет на строку, которую вы передаете методу. –

ответ

-1

URL может содержать следующие специальные символы, вы можете попробовать, как это:

URLEncoder.encode("This string has spaces", "UTF-8"); 

затем сохранить в файле.

последняя сделать это:

url = URLDecoder.decode(jsonObject.get("URL").toString(), "UTF-8"); 
Смежные вопросы