여기 내 코드입니다 :이 오류를 받고 있어요최종 변수에 값을 할당 할 수 없습니다
public String getGPA() {
String gpa = null;
final String responseBody1;
new Thread(new Runnable(){
public void run()
{
try {
HttpGet httpGet_gpa = new HttpGet("https://somedomain.com" + getRegId() + "&format=P");
HttpResponse response = httpClient.execute(httpGet_gpa);
responseBody1 = EntityUtils.toString(response.getEntity());
} catch (ClientProtocolException cpe) {
// Ignore
} catch (IOException ioe) {
// Ignore
}
}
}).start();
Document gpa_doc = Jsoup.parse(responseBody1);
Element p = gpa_doc.select("p").first();
gpa = p.text().replace("Your overall GPA (Grade Point Average) to date is:", "");
return gpa;
}
: cannot assign a value to final variable responseBody1
. 이것은 무엇을 의미 하는가? 나는 최종 수정자를 제거하려고 노력했으나 최종 결정을 내릴 필요가 있다고 알려주지 만, 나는 그 오류를 얻는다. 왜 이런 일이 일어나고 그것을 고치는 방법에 대한 단서가 있습니까?
'최종 수정'과 '정적 수정'의 차이점은 무엇입니까?또한'EntityUtils.toString'에 의해 일부 데이터가로드 된 후에'responseBody1'에 액세스해야합니다. 그러나 변수를 'final'로 설정해야하므로 데이터에 액세스 할 수 없으며 일단 최종으로 설정하면 어떤 데이터도로드 할 수 없으며 스레드 외부에서 읽을 수 없습니다. – SomeProgrammer123
정적은 클래스에 하나의 변수 인스턴스 만 존재한다는 것을 의미합니다. 즉,이 클래스의 모든 객체는 동일한 변수에 액세스 할 수 있습니다. responseBody1에 대해서, 나는 나의 대답을 편집했다. try로 정적 함수를 만들고 run() 함수를 호출하십시오. – Gaktan
@Gaktan이 정적 함수는 무엇을 할 것입니까? 'String'을 반환하면 스레드의 run() 메서드는 함수 결과에 무언가를 할당해야하며 문제를 해결하지 못했습니다. 아마도 솔루션을 시연하는 코드 예제를 게시해야합니다. – ajb