Metoda @SuppressWarnings - znaczenie w podanym przypadku

0

Koledzy co oznacza w takim przypadku metoda @SuppressWarnings ?

 
    @SuppressWarnings("unchecked")
    @Override
    public List<Person> listPersons() {
        Session session = this.sessionFactory.getCurrentSession();
        List<Person> personsList = session.createQuery("from Person").list();
        for(Person p : personsList){
            logger.info("Person List::"+p);
        }
        return personsList;
    }

0

To nie jest metoda tylko adnotacja. Oznacza że kompilator nie będzie krzyczał warningiem że robisz rzutowanie surowegu typu na generica. Zauważ ze takie coś: session.createQuery("from Person").list(); mogłoby równie dobrze zwrócic List<Elephant> a ty rzutujesz na List<Person>. Normalnie oznaczane jest to jako warning żebyś widział że coś może być nie tak. Ale jeśli jesteś pewien że to jest poprawne rzutowanie to możesz dać suppress warnings

1

Może to robić, ale ten @SuppressWarnings("unchecked") powinien być założony niżej

na przykład:

		@SuppressWarnings("unchecked")
		List<Type> results = query.getResultList();
  • Item 24: Eliminate unchecked warnings

1 użytkowników online, w tym zalogowanych: 0, gości: 1