code_junkie

Java Generics: Comparing the class of Object o to <E>

Nov 10th, 2011
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. public class Test<E> {
  2. public boolean sameClassAs(Object o) {
  3. // TODO halp!
  4. }
  5. }
  6.  
  7. Test<String> test = new Test<String>();
  8. test.sameClassAs("a string"); // returns true;
  9. test.sameClassAs(4); // returns false;
  10.  
  11. public class Test<E> {
  12. private final Class<E> clazz;
  13. public Test(Class<E> clazz) {
  14. if (clazz == null) {
  15. throw new NullPointerException();
  16. }
  17. this.clazz = clazz;
  18. }
  19. // To make things easier on clients:
  20. public static <T> Test<T> create(Class<T> clazz) {
  21. return new Test<T>(clazz);
  22. }
  23. public boolean sameClassAs(Object o) {
  24. return o != null && o.getClass() == clazz;
  25. }
  26. }
  27.  
  28. public class Test<E> {
  29. private Class<E> clazz;
  30. public Test(Class<E> clazz) {
  31. this.clazz = clazz;
  32. }
  33. public boolean sameClassAs(Object o) {
  34. return this.clazz.isInstance(o);
  35. }
  36. }
  37.  
  38. public class Test<E> {
  39.  
  40. private E e;
  41.  
  42. public void setE(E e) {
  43. this.e = e;
  44. }
  45.  
  46. public boolean sameClassAs(Object o) {
  47.  
  48. return (o.getClass().equals(e.getClass()));
  49. }
  50.  
  51. public boolean sameClassAs2(Object o) {
  52. return e.getClass().isInstance(o);
  53. }
  54. }
  55.  
  56. public boolean sameClassAs(Object o) {
  57. boolean same = false;
  58. try {
  59. E t = (E)o;
  60. same = true;
  61. } catch (ClassCastException e) {
  62. // same is false, nothing else to do
  63. } finally {
  64. return same;
  65. }
  66. }
Add Comment
Please, Sign In to add comment