Aktywne Wpisy

ntdc +431
Chiny oficjalnie zakazały dostępu do platformy subskrypcyjnej OnlyFans, przedstawiając ją jako szkodliwy zachodni wpływ podważający moralność i stabilność społeczną. Według Tech in Asia władze określiły serwis jako „zachodnią chorobę” oraz zagrożenie dla kulturowych fundamentów kraju. Decyzja wpisuje się w szerszą kampanię zaostrzania kontroli nad platformami internetowymi i eliminowania treści uznawanych za niepożądane.
Jak podaje The Daily Guardian, urzędnicy nazwali OnlyFans „symbolem zachodniego upadku moralnego” oraz „zachodnim bagnem”, które nie powinno funkcjonować w
Jak podaje The Daily Guardian, urzędnicy nazwali OnlyFans „symbolem zachodniego upadku moralnego” oraz „zachodnim bagnem”, które nie powinno funkcjonować w
źródło: ch
Pobierz
Szczurzeinteresy +133
#gotujzwykopem serniczek zrobiłam
źródło: IMG_7431
Pobierz




Aplikacja Rest, java, spring.
Dostaje w headerze "Accept-Language" - na jego podstawie ustalam główny obsługiwany język naszej przeglądarki.
Potem wyciągam z bazy danych wszystkie języki obsługiwane przez moją aplikacje, mapuję na mój model restowy i chcę ustawić w mojej liście języków ustawić który element jest aktualnym językiem.
główna metodamapująca:
public static List mapFromSupportedLanguagesEntitiesAndSetActualLanguage(List supportedLanguagesEntities, String actualLanguage) {
List supportedLanguagesList = new ArrayList<>();
for (SupportedLanguagesEntity supportedLanguagesEntity : supportedLanguagesEntities){
SupportedLanguages supportedLanguages = mapFromSupportedLanguagesEntity(supportedLanguagesEntity);
supportedLanguagesList.add(supportedLanguages);
}
setActualLanguage(supportedLanguagesList, actualLanguage);
return supportedLanguagesList;
}
metodaustawiająca flagę:
private static void setActualLanguage(List supportedLanguagesList, String actualLanguage) {boolean actualLanguageExist = supportedLanguagesList.stream().anyMatch(s -> actualLanguage.equalsIgnoreCase(s.getIdentity()));
if (actualLanguageExist) {
for(SupportedLanguages supportedLanguages : supportedLanguagesList) {
if (actualLanguage.equalsIgnoreCase(supportedLanguages.getIdentity())) {
supportedLanguages.setActualLanguage(true);
}
}
} else {
for(SupportedLanguages supportedLanguages : supportedLanguagesList) {
if ("EN".equalsIgnoreCase(supportedLanguages.getIdentity())) {
supportedLanguages.setActualLanguage(true);
}
}
}
}
Pytanie jak ładniej napisać drugą metodę, nie podoba mi się że muszę trzykrotnie przelecieć po całej liście i interesuje mnie jakieś lepsze rozwiązanie(jesli jest).
PS. Jest dla javy jakis serwis gdzie mogę wrzucić kod który automatycznie sie tam sformatuje i nie trzeba go uruchamiać?
#java #naukaprogramowania
@dinor913: github ma gist
boolean actualLanguageExist = supportedLanguagesList.stream().anyMatch(s -> actualLanguage.equalsIgnoreCase(s.getIdentity()));if (actualLanguageExist) {
for(SupportedLanguages supportedLanguages : supportedLanguagesList) {
if
SupportedLanguage actualLang = langMap.get(actualLanguage);
if (actualLang != null)
1.Muszę użyć pętli aby utworzyć mapy z odpowiednim kluczem.
2.Klucze muszą być odporne na wielkość liter więc musiał bym mieć w mapie mieć getIgnoreCase...
(można samemu stworzyć taką mapę)
ad 1) nie, nie musisz.
ad 2) Czemu muszą być odporne? Kto ustawia header w rządaniu HTTP?
Wrzucam na gist kod teraz lepiej wygląda.
Ominąłeś drugi warunek czyli ustaw jezyk EN jako podstawowy jeśli żadnego nie znajdzie.
1.Faktycznie mój błąd.
2.Uczono mnie że nie powinienem polegać na tym że obiekt zawsze będzie taki i taki i powinienem zapobiegać tego typu poprzez rożnego rodzaju walidacje - w tym przypadku ignoreCase.
Co sądzisz o tego typu zabezpieczeniach programu że np mamy w bazie danych wartości z małych liter i z hedera też dostajemy wartość z małych liter a i tak chcemy sie zabezpieczyć poprzez użycie
Ale w tym przypadku zadałem pytanie - kto ustawia wartość headera? Tag language jest case-insensitive, więc jeśli to zawsze Ty (czy podmiot nad którym masz pełną kontrolę) ustawia ten tag, to możesz śmiało przyjąć, że np. zawsze będzie pisany wielkimi literami -> dzięki temu odpadnie Ci sprawdzanie, ot, jak ktoś wyśle małymi, to