Java abstract class Implementing with generics

Airfreshener

I have an abstract class with generic (T1) that extends my Filterable interface:

public abstract class AbstractAdapter < T1 extends Filterable, T2 extends AbstractAdapter.Cell > extends ArrayAdapter < T1 > {

    public abstract class Cell {
        public T1 info;
        //...
    }

    public abstract void setData(T2 cell, int position);

    //...
}

And i have concrete class with method (setData) and Cell class implementations:

public class ConcreteAdapter extends AbstractAdapter < InfoClass, ConcreteAdapter.Cell > {

    public class Cell extends AbstractAdapter.Cell {
        //...
    }

    @Override
    public void setData(Cell cell, int position) {
        InfoClass info = (InfoClass)cell.info; // need to cast from Filterable to InfoClass (why?). Or i have compilation error
    }

    //...
}

So, i have ConcreteAdapter class with first generic class as InfoClass (that extends Filterable), in method setData i have Cell class object, but field "info" i see just as Filterable, not InfoClass. I think, field "info" already should be as generic type, because it declared as

T1 info;

but not

Filterable info;

Is it possible change field type from extendable to generic class without cast? Or its a bug in IDE?

Tamas Rev

This is a very tricky case because the AbstractAdapter is raw in AbstractAdapter.Cell. If you specify enough types, then you don't need the cast anymore:

public abstract class AbstractAdapter < T1 extends Filterable, T2 extends AbstractAdapter<T1, T2>.Cell > extends ArrayAdapter < T1 > {
    //...
}

and

public class ConcreteAdapter extends AbstractAdapter < InfoClass, ConcreteAdapter.Cell > {

    public class Cell extends AbstractAdapter<InfoClass, ConcreteAdapter.Cell>.Cell {
        //...
    }

    @Override
    public void setData(Cell cell, int position) {
        InfoClass info = cell.info; 
    }

    //...
}

makes it work again. However, it's very complicated. I would move Cell into a top-level class if possible.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Java

Java Abstract Class Implementing an Interface with Generics

From Dev

Proper use of generics in abstract java class?

From Dev

Generics in Java - type erasure with abstract class

From Dev

Constructor to interface/abstract class using Java generics

From Dev

Implementing an abstract, generic Java class with abstract member class in Scala

From Dev

Java collection, generics and abstract class: concrete class information lost

From Dev

Type safety issue when implementing abstract methods from a class using generics + union types [Typescript]

From Java

Java Generics: interface method that receives type argument of implementing class

From Java

Implementing and extending, Interface and Abstract class respectively with same method name in java

From Dev

How to extends an abstract class with generics?

From Dev

Call constructor in abstract class with generics

From Dev

AutoConfiguredMoqCustomization with abstract class implementing interface

From Dev

Implementing this Abstract Class using a declaration

From Dev

Why Abstract Class Implementing Interface?

From Java

Java generics abstract factory issue

From Java

Implementing abstract methods in a subclass in Java

From Java

implementing abstract methods/classes in java

From Dev

Polymorphic function in class which is implementing abstract class

From Java

Generics: Inheriting from an abstract class that implements an interface

From Dev

Generics: Create instance from abstract class

From Dev

Change instance of abstract class that use generics

From Java

Java abstract class, abstract constructor

From Dev

Abstract Method In Abstract Class In java

From Java

Class implementing an interface is not accepted for generics wildcard

From Dev

How can I refactor this horrid abstract java class with multiple generics into something "better"?

From Dev

Inheritance of nested generics / nested generics in abstract class C#

From Java

What (not) to declare when implementing an interface with an abstract class?

From Java

Implementing a composition relationship in an abstract class definition

From Dev

implementing abstract class using derived types

Related Related

  1. 1

    Java Abstract Class Implementing an Interface with Generics

  2. 2

    Proper use of generics in abstract java class?

  3. 3

    Generics in Java - type erasure with abstract class

  4. 4

    Constructor to interface/abstract class using Java generics

  5. 5

    Implementing an abstract, generic Java class with abstract member class in Scala

  6. 6

    Java collection, generics and abstract class: concrete class information lost

  7. 7

    Type safety issue when implementing abstract methods from a class using generics + union types [Typescript]

  8. 8

    Java Generics: interface method that receives type argument of implementing class

  9. 9

    Implementing and extending, Interface and Abstract class respectively with same method name in java

  10. 10

    How to extends an abstract class with generics?

  11. 11

    Call constructor in abstract class with generics

  12. 12

    AutoConfiguredMoqCustomization with abstract class implementing interface

  13. 13

    Implementing this Abstract Class using a declaration

  14. 14

    Why Abstract Class Implementing Interface?

  15. 15

    Java generics abstract factory issue

  16. 16

    Implementing abstract methods in a subclass in Java

  17. 17

    implementing abstract methods/classes in java

  18. 18

    Polymorphic function in class which is implementing abstract class

  19. 19

    Generics: Inheriting from an abstract class that implements an interface

  20. 20

    Generics: Create instance from abstract class

  21. 21

    Change instance of abstract class that use generics

  22. 22

    Java abstract class, abstract constructor

  23. 23

    Abstract Method In Abstract Class In java

  24. 24

    Class implementing an interface is not accepted for generics wildcard

  25. 25

    How can I refactor this horrid abstract java class with multiple generics into something "better"?

  26. 26

    Inheritance of nested generics / nested generics in abstract class C#

  27. 27

    What (not) to declare when implementing an interface with an abstract class?

  28. 28

    Implementing a composition relationship in an abstract class definition

  29. 29

    implementing abstract class using derived types

HotTag

Archive