1
안녕하세요 쿠키 폼 HttpURLConnection
개체를 가져 오는 다음 코드가 있습니다.코드를 람다 함수로 변환
for (int i=1; (headerName = connection.getHeaderFieldKey(i))!=null; i++){
if (headerName.equals("Set-Cookie")){
String cookie = connection.getHeaderField(i);
cookie = cookie.substring(0, cookie.indexOf(";"));
String cookieName = cookie.substring(0, cookie.indexOf("="));
String cookieNameFromConfig = TalismaConnector.config.getValue("api.authentication.cookiename");
if (cookieName.equals(cookieNameFromConfig)){
//the right cookie to get the content from.
jsessionID = cookie.substring(cookie.indexOf("=") + 1, cookie.length());
OptJsessionID = Optional.ofNullable(jsessionID);
break;
}
}
}
나는 자바 8.
어떤 생각을 사용하여 강력한 람다 함수로이 쓰기 하시겠습니까?
@Vinay 요셉 : 그게 내가 두 번째 문장에서 설명 무엇을, 술어는'null' 헤더 필드 또는'은'findFirst' 찾을 수 있도록' "- 쿠키 설정"두 경기를 모두 받아들 어느 쪽이든 먼저 오는 쪽을 선택하십시오. 스트림은 모든 기존 헤더 필드를 처리했을 때만 스트림이 'null'값을 만날 것이기 때문에 'null'을 만나면 일치하는 것이 없음을 의미합니다. 'null '이 발견되면, 즉 일치하는 것이 발견되지 않으면'findFirst(). get()'은 빈'Optional'으로 평가되고'ifPresent' 메소드는 아무것도하지 않습니다. – Holger
나는 return의 구문에 익숙하지 않았다. True || False –
@Vinay Joseph : 오, 그게 λ 식 질문의 범위에서 벗어난 것입니다. 신경 쓰지 마; ''||''논리적 인 '또는''논리적 인''에 대한 중요한 점은 첫 번째 표현식이'true'로 평가되면 두 번째 표현식을 평가하지 않기 때문에'k'가'null' 인 경우 Java는'equals '그것에. – Holger