JavaFX Warning bei getTableRow( ) vermeidbar?

SchwarzWeiß

Bekanntes Mitglied
Hallo Leute, ich habe folgenden Code (auf das Wesentliche reduziert):

Java:
    column.setCellFactory(c -> {
      TableCell<EigeneKlasse, String> cell = new TableCell<EigeneKlasse, String>() {

        @Override
        protected void updateItem(String item, boolean empty) {
          super.updateItem(item, empty);
          if (!empty) {

            TableRow<EigeneKlasse> tableRow = (TableRow<EigeneKlasse>) getTableRow();
             // ...
           }
        }
      };
      return cell;
    });

Bei getTableRow( ) tritt folgende Warning auf: Type safety: Unchecked cast from TableRow to TableRow<Eigene Klasse>

Dies passiert, da die Methode getTableRow( ) der Klasse TableCell wie folgt implementiert ist:
Java:
   public final TableRow getTableRow() { return tableRow.get(); }

Kann man diese Warning vermeiden? Wenn ich die Annotation SuppressWarnings("unchecked") hinzufüge, wie es auch von Eclipse vorgeschlagen wird, tritt dort eine Warning auf ("unnecessary").
 
Zuletzt bearbeitet:

SchwarzWeiß

Bekanntes Mitglied
Vermeiden kann man sie mWn nicht, nur unterdrücken
Wie gesagt, wenn ich @SuppressWarnings("unchecked") benutze, erzeugt es eine Warning an dieser Stelle (unnecessary @SuppressWarnings("unchecked")), oder meinst du etwas anderes mit "unterdrücken"?
Was willst du denn damit erreichen?
Ein warning-freier Code, wie es vom Unternehmen verlangt wird und bisher auch immer problemlos umsetzbar war.
 

mrBrown

Super-Moderator
Mitarbeiter
Wie gesagt, wenn ich @SuppressWarnings("unchecked") benutze, erzeugt es eine Warning an dieser Stelle (unnecessary @SuppressWarnings("unchecked")), oder meinst du etwas anderes mit "unterdrücken"?
Ich meinte die Warnung bzgl des Cast ;)
Wobei man uU an anderer Stelle casten oder erst prüfen kann und die Warnung damit verhindert oder das etwas anders aufbaut und nicht an den Inhalt TableRow muss.

Ist denn das "unnecessary" eine Compiler oder IDE-Warung (javac kennt das zumindest afaik nicht)?

Ein warning-freier Code, wie es vom Unternehmen verlangt wird und bisher auch immer problemlos umsetzbar war.
Ich meinte, was du mit der TableRow machen willst ;)
 
Zuletzt bearbeitet:

mrBrown

Super-Moderator
Mitarbeiter
Was ist denn der Unterschied, bzw. woran erkenne ich das?

Naja, die einen sind nur in deiner IDE sichtbar, die anderen beim richtigen kompilieren.
Wenn die Warnung nicht auftaucht, wenn man mit dem normalem Build-System kompiliert, ist's ne IDE-Warnung.

Die Zellen bekommen ein Layout und die Info, welches Layout das sein soll, besitzt die Zeile.
Dann sollte ein TableRow<?> reichen und den nötigen Cast und eine Warnung vermeiden.
 

SchwarzWeiß

Bekanntes Mitglied
Naja, die einen sind nur in deiner IDE sichtbar, die anderen beim richtigen kompilieren.
Wenn die Warnung nicht auftaucht, wenn man mit dem normalem Build-System kompiliert, ist's ne IDE-Warnung.
Nein, beim Build taucht es nicht auf, ist also eine IDE-Warning. Kannst du mal ein Beispiel für eine Compiler-Warning nennen, mir ist das ehrlich gesagt glaube noch nie aufgefallen :D

Dann sollte ein TableRow<?> reichen und den nötigen Cast und eine Warnung vermeiden.
Vielen Dank, funktioniert!
 

mrBrown

Super-Moderator
Mitarbeiter
Nein, beim Build taucht es nicht auf, ist also eine IDE-Warning. Kannst du mal ein Beispiel für eine Compiler-Warning nennen, mir ist das ehrlich gesagt glaube noch nie aufgefallen :D
zB die unchecked-Warnung ;)
(wobei das je nach Compiler unterschiedlich sein kann, möglicherweise kennt der Eclipse-Compiler auch "unnecessary")
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S JPasswordField warning : deprecation AWT, Swing, JavaFX & SWT 10

Ähnliche Java Themen

Neue Themen


Oben