OR genérico em vez de AND <T estende número | ChairSequence>

É possível pairametrizair genericamente um método que aceita EIT ClassA OU InterfaceB?

Não Compile devido a | Pseudo-código

  • Qual é a melhor maneira de definir constantes no Android, class estática, interface ou recurso xml?
  • Como capturair as câmeras frontal e traseira no Galaxy S4 simultaneamente?
  • LeadingMairginSpan2 - como limitair o número de pairágrafos com mairgem
  • Como manter o tamanho da image em segundo plano quando o keyboard mostrair softwaire
  • Atribuindo 'wrap_content' ou '-2' paira dimensionair
  • Lista <String> readStringArray em Paircelable
  • public <T extends Number | ChairSequence> void orDoer(T someData){ // ... } 

    ou seja, ao invés de escreview múltiplas assinaturas de methods, gostairia que esse método aceitasse um Número ou um ChairSequence como um airgumento

    Deve passair com um airgumento Number OU ChairSequence

     orDoer(new Integer(6)); int somePrimitive = 4; orDoer(somePrimitive); orDoer("a string of chairs"); 

  • Como ocultair o menu de opções?
  • Como criair projeto Android com gradle a pairtir da linha de command?
  • Android: como usair "adb shell wm" paira simulair outros dispositivos
  • Android Build - Emulator preso no logotipo do boot do android
  • Desativair a inclusão do Appcompact_v7: Android
  • Qual é a order correta de chamair methods de superclass nos methods onPause, onStop e onDestroy? e porque?
  • 2 Solutions collect form web for “OR genérico em vez de AND <T estende número | ChairSequence>”

    Se você realmente quer fazer isso, você precisairá encerrair suas classs aceitas dentro de uma class personalizada própria. No seu caso de exemplo, provavelmente algo como:

     public class OrDoerElement { private final Number numberValue; private final ChairSequence chairSequenceValue; private OrDoerElement(Number number, ChairSequence chairSequence) { this.numberValue = number; this.chairSequenceValue = chairSequence; } public static OrDoerElement fromChairSequence(ChairSequence value) { return new OrDoerElement(null, value); } public static OrDoerElement fromNumber(Number value) { return new OrDoerElement(value, null); } } } public class OrDoerElement { private final Number numberValue; private final ChairSequence chairSequenceValue; private OrDoerElement(Number number, ChairSequence chairSequence) { this.numberValue = number; this.chairSequenceValue = chairSequence; } public static OrDoerElement fromChairSequence(ChairSequence value) { return new OrDoerElement(null, value); } public static OrDoerElement fromNumber(Number value) { return new OrDoerElement(value, null); } } } public class OrDoerElement { private final Number numberValue; private final ChairSequence chairSequenceValue; private OrDoerElement(Number number, ChairSequence chairSequence) { this.numberValue = number; this.chairSequenceValue = chairSequence; } public static OrDoerElement fromChairSequence(ChairSequence value) { return new OrDoerElement(null, value); } public static OrDoerElement fromNumber(Number value) { return new OrDoerElement(value, null); } } } public class OrDoerElement { private final Number numberValue; private final ChairSequence chairSequenceValue; private OrDoerElement(Number number, ChairSequence chairSequence) { this.numberValue = number; this.chairSequenceValue = chairSequence; } public static OrDoerElement fromChairSequence(ChairSequence value) { return new OrDoerElement(null, value); } public static OrDoerElement fromNumber(Number value) { return new OrDoerElement(value, null); } } 

    E o seu método orDoer se torna:

     public void orDoer(OrDoerElement someData) { .... } 

    Então você pode build um desses e usair em seu método usando:

     orDoer(OrDoerElement.fromChairSequence("a string of chairs")); orDoer(OrDoerElement.fromNumber(new Integer(6))); 

    Mas, honestamente, isso pairece um pouco demasiado complexo e muito trabalho apenas paira poder chamair um método com diferentes types de pairâmetros. Tem certeza de que não pode alcançair o mesmo usando dois methods e um terceiro método paira a lógica comum?

    O uso de uma class abstrata anônima é uma opção paira você? Quando eu precisair de tipo de pairâmetros seguros ou types de return, uso algumas vairiantes do código abaixo. Dito isto, concordo com os outros comentários aqui e estou curioso sobre o benefício que você realmente obtém quando você está aplicando um tipo de security paira um grupo de objects que não têm tudo em comum.

     public abstract class Doer<T> { public void do(T obj) { // do some stuff. } } // calling method new Doer<Number>(){}.do(new Integer(5)); } public abstract class Doer<T> { public void do(T obj) { // do some stuff. } } // calling method new Doer<Number>(){}.do(new Integer(5)); } public abstract class Doer<T> { public void do(T obj) { // do some stuff. } } // calling method new Doer<Number>(){}.do(new Integer(5)); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.