Supponiamo di avere un POJO A e qualche codice client che lo serve. Ho creato POJO B, che non ha nulla in comune con A, ma voglio usarlo nei metodi che usano A, quindi ho deciso di creare un'interfaccia marcatore C, che implementa e modifica la firma dei metodi per servirli entrambi.
Considerando che oltre a essere in grado di essere serviti da questi metodi, questi due POJO non hanno un campo o un metodo in comune, dovrebbero davvero essere considerati come parte di qualche interfaccia, che capisco definisce un contratto o un comportamento? Poiché questo "contratto C" non specifica alcun comportamento è un contratto? Come lo definisce il principio di sostituzione di Liskov? Potresti dire che entrambi i POJO possono essere sostituiti da C in questi metodi, il che significa che non si rompono nulla, quindi sembra che la regola non sia affatto infranta.